Puncte:0

sensul „dpkg-divert --local --rename --add /sbin/initctl”

drapel za

Aceasta este de la https://help.ubuntu.com/community/LiveCDCustomizationFromScratch.
Aici ar trebui să fac în mediul chroot,

dpkg-divert --local --rename --add /sbin/initctl

Îi spune sistemului de operare că „de acum înainte, când instalați pachete, oricare ar fi pachetul (--local), dacă acel pachet încearcă să instaleze /sbin/initctl, instalează-l (--add) în /sbin/initctl. distrib (--redenumiți)" ? Am incercat sa inteleg manualul dar nu am reusit sa il inteleg exact.

Dacă un fișier este redirecționat către un alt fișier prin această comandă dpkg-divert (de exemplu, xfile la xfile.distrib) de către un pachet, atunci când pachetul este folosit, xfile.distrib este folosit în loc de xfile original?
am incercat cat /var/lib/dpkg/diversions și îmi oferă această listă.

/usr/share/dict/words
/usr/share/dict/words.pre-dictionaries-common
dicţionare-comun
/usr/share/man/man1/sh.1.gz
/usr/share/man/man1/sh.distrib.1.gz
liniuță
/usr/share/man/man1/dh_gstscancodecs.1.gz
...

Fișierul conține lista de fișiere și nu numele pachetelor și nu pot înțelege. De exemplu, ce înseamnă prima linie /usr/share/dic/words Rău?
Vă rog să mă confirme cineva dacă înțelegerea mea este corectă și ce înseamnă lista.

Puncte:0
drapel us

Îi spune sistemului de operare că „de acum înainte, când instalați pachete, oricare ar fi pachetul (--local), dacă acel pachet încearcă să instaleze /sbin/initctl, instalează-l (--add) în /sbin/initctl. distribuie (--redenumiți)"

  • --redenumiți îi spune să mute imediat orice fișier existent
  • aș pune --adăuga lângă „a spune sistemului de operare”

Dacă un fișier este redirecționat către un alt fișier prin această comandă dpkg-divert (de exemplu, xfile la xfile.distrib) de către un pachet, atunci când pachetul este folosit, xfile.distrib este folosit în loc de xfile original?

Nu. Oricine a creat diversiunea trebuie să ofere ceva în locul asta xfile (în acest caz, acesta ești tu). În acea pagină, ei fac:

ln -s /bin/true /sbin/initctl

The diversiuni fișierul este format din grupuri de trei linii:

  1. Fișierul care urmează să fie redirecționat
  2. Locația deviată
  3. Pachetul care a configurat diversiune

Deci pentru următoarele trei rânduri:

/usr/share/dict/words
/usr/share/dict/words.pre-dictionaries-common
dicţionare-comun

dpkg va devia instalaţiile de /usr/share/dict/words din alte pachete decât dicţionare-comun (Spune, wamerican, de exemplu) la /usr/share/dict/words.pre-dictionaries-common. Daca instalezi wamerican, puteți vedea asta în acțiune:

# dpkg -S /usr/share/dict/words
diversiune prin dicționare-comun din: /usr/share/dict/words
diversiune prin dicționare-comun la: /usr/share/dict/words.pre-dictionaries-common
wamerican: /usr/share/dict/words

Acest ghid este puțin depășit: initctl este Upstart, care nu mai este folosit. Nici măcar nu-l mai poți instala. Gestionarea serviciului se face folosind systemd, iar acum utilizați systemctl in schimb.

drapel za
Mulțumiri! Acum aproape că pot să înțeleg. O întrebare, acum că alte pachete se vor instala în locația (fișierul) redirecționată, atunci alte pachete vor folosi noul fișier redirecționat (schimbat cu numele) în loc de fișierul original? deci întrebarea mea este dacă deturnarea numai pentru instalare sau pentru utilizare reală, alta decât pachetul care a configurat devierea. (și da, știam că ghidul LiveCDFromScratch de mai sus este prea vechi, așa că este aproape inutilizabil. Sper că oamenii ubuntu actualizează acele documente.)
muru avatar
drapel us
Nimeni, în afară de `dpkg` și creatorul deturnării, nu știe despre diversiune. Oricine folosește `/path/to/some/file` care a fost redirecționat va folosi orice este în prezent acolo.
drapel za
Ah multumesc mult!
drapel us
@muru nici nu am initctl in /sbin. numai init. Ubuntu 18.04.6 LTS \n \l Ce au făcut acele linii, când avea sens? pentru a menține procesul init în siguranță?
muru avatar
drapel us
@CEOatApartico în pașii de după aceea sunt instalate mai multe pachete. Unele pachete pornesc sau repornesc serviciile la instalare, iar acest lucru a fost făcut folosind comanda `initctl`. Deoarece nu are rost să faci asta în chroot (și ar cauza erori pentru că init nu rulează în chroot), ei îl înlocuiesc cu `true` pentru restul setării.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.