Puncte:4

De ce pachetele instalate ar avea starea „Eliminare”?

drapel cn

În timp ce făceam alte sarcini de întreținere, am observat asta dpkg -l a enumerat aproximativ 90 de pachete cu statut ri în loc de așteptat ii.

Întrețin pachetele numai cu apt și aptitudine și nu am forțat niciun pachet, dar o fac în mod regulat apt install --no-install-recommends... pentru a evita primirea de pachete inutile. De asemenea, încerc să mențin cu atenție steaguri „instalat automat” și am 2914 pachete cu starea „instalat automat” (căutare de aptitudini '~i~M') și 422 de pachete cu starea „instalat manual” (căutare de aptitudini '~i!~M').

Care ar putea fi motivul pentru ca pachetele să aibă statut Elimina + Inst (ri) în dpkg -l listare când nu am solicitat ca acele pachete să fie eliminate? Se părea că pachetele cu această stare erau pachete pe care de fapt vreau să le păstrez în sistem. Ar putea de ex. sudo apt dist-upgrade cauza asta fara ca eu sa bag in seama?

(Știu că pot reinstala acele pachete cu apt install --reinstall package-name pentru a reveni la statutul ii. De asemenea, șterg adesea pachetele eliminate și căutare de aptitudini '~c' nu listează pachete.)

Detalii suplimentare de la alt sistem cu aceeași problemă:

$ sudo apt dist-upgrade && sudo apt autoremove && dpkg -l | grep ^ri | wc -l
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
Se calculează upgrade... Gata
Următoarele pachete au fost reținute:
  virtualbox-6.0
0 actualizat, 0 nou instalat, 0 de eliminat și 1 neactualizat.
Citirea listelor de pachete... Gata
Construirea arborelui de dependență       
Citirea informațiilor despre stare... Gata
0 actualizat, 0 nou instalat, 0 de eliminat și 3 nu au fost actualizate.
171

Asa de dist-upgrade nici autoeliminare nu atingeți pachetele 171 cu ri stare.

Exemplu de pachet cu ri stare:

$ dpkg -l ca-certificates-java
Dorit=Necunoscut/Instalați/Eliminați/Ștergeți/Rețineți
| Stare=Nu/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(niciunul)/Reinstalare obligatorie (Stare, Eroare: majuscule=proasta)
||/ Nume Versiune Descriere arhitectură
+++-================================================ =-============================-==================== =========-========================================== ==================================================== =========
ri ca-certificates-java 20160321ubuntu1 toate certificatele CA comune (magazin de chei JKS)

și informații suplimentare pentru același pachet:

$ aptitude show ca-certificates-java
Pachet: ca-certificates-java            
Stare: instalat
Instalat automat: nu
Multi-Arch: străin
Versiune:...

$ aptitude de ce ca-certificate-java 
i default-jre-headless Depinde openjdk-8-jre-headless
iBA openjdk-8-jre-headless Depinde ca-certificates-java  

$ apt-mark showhold
virtualbox-6.0

Informații suplimentare după ce ați citit despre posibilele cauze:

După cum este explicat în răspuns https://askubuntu.com/a/802612/50254 starea acestor pachete poate fi remediată pentru a se potrivi cu pachetele instalate curent prin rularea (rețineți că fluxul de linie după IFS nu este o greșeală de tipar, dar această comandă necesită setare IFS la un singur avans de linie):

export IFS='
'
pentru i în $(dpkg -l |egrep '^[a-z]i.*' |awk '{print $2" install"}') ; do echo $i|dpkg --set-selections ; Terminat
dezactivați IFS

Motivul/cauza acestei probleme este încă necunoscut. The ri statutul ar trebui să însemne că dselect (vechiul manager de pachete Debian în zilele noastre este complet înlocuit de apt) a marcat pachetul pentru a fi eliminat din sistem și dacă doriți să aplicați acele stări de selecție, puteți rula apt-get dselect-upgrade. Vedea om dpkg și secțiunea „INFORMAȚII DESPRE PACHETE” pentru mai multe informații.

The apt install --reinstall package-name este, de asemenea, în regulă, dar va face mai mult decât modificarea minimă a sistemului pentru a remedia problema.

Terrance avatar
drapel id
Nu sunt 100% sigur, dar mi se pare că pachetele marcate cu `ri` ar fi putut fi dependente de un alt pachet care a fost eliminat, dar nu au fost eliminate, deoarece poate comutatorul `--autoremove` pentru `apt ` nu a fost folosit. Dar nu recomand să folosiți `--autoremove` deoarece puteți elimina alte pachete necesare. Mi-aș dori ca acea parte a gestionării pachetelor să fie perfectă, dar nu este. Am ucis din greșeală sisteme deoarece o aplicație le-a stabilit pe toate pentru eliminarea automată.
drapel cn
A fost o sugestie bună, dar nu a fost cauza. Am adăugat informații despre cum nici `dist-upgrade`, nici `autoremove` nu fac nimic acestor pachete.
Terrance avatar
drapel id
Hmmmmm, da, îmi pare rău, am rămas fără sugestii pentru aceasta. +1 și sperăm că altcineva a dat peste asta. Rulează `dpkg -l | grep -w "ri"` nu aduce nimic pe sistemul meu, dar `dpkg -l | grep -w "rc"` face, dar asta este pentru config și un scenariu complet diferit. Sper sa gasesti un raspuns!
Terrance avatar
drapel id
M-am uitat puțin mai profund în situația ta și, deși nu găsesc răspunsuri solide pentru ceea ce cauzează de fapt acest lucru, poate că unele indicii pentru a putea remedia pot fi găsite în https://askubuntu.com/posts/1352232 /edit , https://askubuntu.com/a/165961/231142 și https://askubuntu.com/a/166254/231142
drapel cn
@Terrance: Se pare că pachetele marcate cu `ri` se potrivesc cu această listă: `dpkg --get-selections | awk '$2 == "dezinstalare" {printare $1}'`. Deci întrebarea este ce proces ar putea marca accidental `deinstall` pentru `dselect` când nu folosesc `dselect` pentru nimic?
Terrance avatar
drapel id
Hopa, tocmai mi-am dat seama că în comentariul meu de mai sus, primul link este unul care era în bufferul meu. Greșeala mea. Lasă-mă să văd dacă găsesc linkul corect acolo. Avea niște informații decente în el.
Terrance avatar
drapel id
Din păcate, nu știu exact ce o cauzează. Bănuiesc că puteți căuta prin jurnalele din `/var/log/dpkg.log` sau poate ceva de genul `journalctl -xe`. Mi-aș dori foarte mult să întâmpin aceeași problemă, deoarece ar ajuta cu adevărat să am o a doua pereche de ochi. Un alt link pe care l-am găsit a fost unde a fost rulat `--clear-selections` și a provocat ceva similar. Este greu de spus dacă acesta ar fi putut fi rulat. https://askubuntu.com/questions/687272/revert-accidental-dpkg-clear-selections?rq=1
drapel cn
Da, am citit și despre `dpkg --clear-selections`, dar cu siguranță nu am rulat asta. Și *nu voi rula asta după ce am citit ce face*. De asemenea, am descoperit că `deinstall` este folosit istoric pentru a semnala `dpkg` prin `dselect` că un pachet ar trebui eliminat. Cu toate acestea, tocmai am verificat și nici măcar nu am `dselect` instalat, așa că nu ar trebui să setați steaguri incorecte. Foarte interesanta problema intr-adevar. Presupunerea mea actuală ar fi că pachetul VirtualBox a executat niște comenzi greșite, deoarece ambele sisteme au VirtualBox instalat și această problemă pare să fie destul de rară în general.
drapel cn
Am verificat și `journalctl` și nu menționează pachetul problematic în ultimii 1,5 ani în care am jurnalele disponibile. Sistemul a fost instalat cu aproximativ 11 luni mai devreme, așa că eroarea trebuie să fi avut loc în acel moment sau orice altceva face ca acest lucru să nu se înregistreze deloc în `journalctl`.
Puncte:2
drapel de

declinare a răspunderii: nu sunt un profesionist când vine vorba de distribuții, așa că acestea sunt doar presupunerile mele, punând 1 și 1 de mai multe ori împreună.

prolog

pe o mașină Ubuntu mai veche am un pachet cu stare ri, care este libellvm5.0 (și o grămadă de altele normale ii-pachete ca libellvm4.0 și libellvm6.0). pachetele <= libellvm5.0 sunt marcate ca instalate manual dar libellvm6.0 este marcat ca instalat automat.
deci bănuiala mea ar fi, că a fost o dependență și a devenit ether învechit prin actualizarea sau eliminarea pachetului dependent.

explicaţie

analizând argumentele/condițiile tale unul câte unul:

  • folosesc doar --no-install-recomands:
    Ei bine, dependențele necesare sunt instalate totuși, altfel programul nu ar funcționa.
  • autoeliminare nu face nimic la aceste pachete:
    Ei bine, cam... sunt destul de sigur că toate ri-pachete lăsate singure de autoeliminare sunt marcate ca manual instalat, deși nu l-ați instalat niciodată „separat”. acest lucru se datorează faptului că, după o configurare inițială, foarte puține (dacă există?) pachete sunt marcate ca instalate automat, din cauza faptului că nu este cu adevărat posibil să se determine ce pachete tu s-ar fi instalat în mod intenționat, deoarece aceasta ar varia de la utilizator la utilizator. (deci... un fel de „ți-ai instalat manual sistemul de operare”.)
  • ar putea sudo apt dist-upgrade cauza asta?:
    nu si da... sudo apt dist-upgrade în sine nu cauzează acest lucru, dar odată cu actualizarea întregului sistem este mult mai probabil ca o grămadă de pachete (instalate inițial) să devină învechite.

a încheia MOTIVUL: bănuiesc că aceste pachete au fost instalate de configurarea inițială, prin urmare marcate ca instalate manual și apoi au devenit învechite prin actualizarea unor pachete sau a întregii distribuții. și pentru că sunt marcate ca instalate manual, nu sunt atinse de autoeliminare.

drapel cn
Aceasta sună o explicație rezonabilă. Toate pachetele cu starea `ri` au, de asemenea, starea `Instalat automat: nu` atunci când sunt interogate cu `aptitude show packagename`. Cu toate acestea, m-aș aștepta ca *toate* pachetele instalate manual să rămână întotdeauna în starea `ii` în loc să fie marcate pentru eliminare cu starea `ri`.

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.