Î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.