Brisanje nepotrebnih paketa nakon nadogradnje

Ilustrativna fotografija

Nakon što ste nadogradili poslužitelj na noviju inačicu distribucije, obično slijedi uzdah olakšanja. Sve radi, svi servisi se odazivaju, korisnici ne zovu - odlično. No, je li zaista sve odrađeno? Možda ipak nije.

Problem je u zaostalim paketima, koji samo zauzimaju mjesto, a mogu prouzročiti probleme zbog svoje starosti.  Iako se većina paketa zamijeni novijim inačicama tijekom nadogradnje, to nije slučaj sa svim paketima. Neki paketi jednostavno nemaju čistu putanju nadogradnje (upgrade path), što znači da u novoj distribuciji nema paketa koji bi ih zamijenio. Na primjer, u distribuciji Lenny izbačeno je 2000 paketa koji su bili u distribuciji Etch.

Neki paketi su izbačeni zato jer se ne osvježava originalni kod (upstream), ili nema održavatelja paketa (maintainera).  Iz distribucije Squeeze je tako ispao paket amavis-stats, kojeg su mnogi rado instalirali. Postoji još razloga za napuštanje paketa, ali oni zapravo i nisu bitni, jer zaostale pakete jednostavno treba obrisati i na taj način osloboditi diskovni prostor. Oslobođeni prostor nije zanemariv, radi se o desecima, pa i stotinama megabajta. Idemo vidjeti što se može obrisati (primjer je sa pravog poslužitelja):

# dpkg -l | grep woody
ii  catdoc-cn                   0.91.5-1.woody3
ii  libpam-smb                  1.1.6-1.1woody1
ii  libssl09                    0.9.4-6.woody.3

# dpkg -l | grep sarge
ii  dovecot                     0.99.14-1sarge0
ii  libapr0                     2.0.54-5sarge2
ii  libdns16                    1:9.2.4-1sarge3
rc  libdps1                     4.3.0.dfsg.1-14sarge7
rc  libgssapi1-heimdal          0.6.3-10sarge2
ii  libisc7                     1:9.2.4-1sarge3
ii  libisccfg0                  1:9.2.4-1sarge3
ii  liblwres1                   1:9.2.4-1sarge3
ii  libnspr4                    2:1.7.8-1sarge10
ii  libnss3                     2:1.7.8-1sarge10
ii  libssl0.9.6                 0.9.6m-1sarge5
ii  python2.1                   2.1.3dfsg-1sarge1
ii  python2.2                   2.2.3dfsg-2sarge1

# dpkg -l | grep etch
rc  devscripts                  2.9.26etch5
rc  elinks                      0.11.1-1.2etch2
ii  libdns22                    1:9.3.4-2etch6
ii  libgnutls13                 1.4.4-3+etch5
ii  libisc11                    1:9.3.4-2etch6
ii  libisccc0                   1:9.3.4-2etch6
ii  libisccfg1                  1:9.3.4-2etch6
ii  libssl0.9.7                 0.9.7k-3.1etch5
ii  ntp-simple                  1:4.2.2.p4+dfsg-2etch4

# dpkg -l | grep lenny
rc  libbind9-40                 1:9.5.1.dfsg.P3-1+lenny1
rc  libbind9-50                 1:9.6.ESV.R4+dfsg-0+lenny4
ii  libcupsys2                  1.3.8-1+lenny10
rc  libdns45                    1:9.5.1.dfsg.P3-1+lenny1
rc  libdns55                    1:9.6.ESV.R1+dfsg-0+lenny2
rc  libdns58                    1:9.6.ESV.R4+dfsg-0+lenny4
rc  libisc45                    1:9.5.1.dfsg.P3-1+lenny1
rc  libisc50                    1:9.6.ESV.R4+dfsg-0+lenny4
rc  libisc52                    1:9.6.ESV.R1+dfsg-0+lenny2
rc  libisccc40                  1:9.5.1.dfsg.P3-1+lenny1
rc  libisccc50                  1:9.6.ESV.R4+dfsg-0+lenny4
rc  libisccfg40                 1:9.5.1.dfsg.P3-1+lenny1
rc  libisccfg50                 1:9.6.ESV.R4+dfsg-0+lenny4
ii  libkpathsea4                2007.dfsg.2-4+lenny3
ii  libltdl3                    1.5.26-4+lenny1
rc  liblwres40                  1:9.5.1.dfsg.P3-1+lenny1
rc  liblwres50                  1:9.6.ESV.R4+dfsg-0+lenny4
ii  libmysqlclient15off         5.0.51a-24+lenny5
ii  libvolume-id0               0.125-7+lenny3
rc  linux-image-2.6.26-2+cn1-686-bigmem   2.6.26-19lenny2+cn1
ii  python2.4                   2.4.6-1+lenny1
ii  python2.4-minimal           2.4.6-1+lenny1
ii  tetex-base                  2007.dfsg.2-1~lenny2

Jeste li očekivali ovoliki broj paketa, iz tolikih starih distribucija?

Krenimo ih brisati:

# dpkg -l | grep etch | awk '{print $2}' | xargs dpkg --purge

Uz pomoć nekoliko korisnih naredbi isfiltrirali smo nepotrebne pakete i obrisali smo ih, uključujući i njihovu dokumentaciju. Neki paketi će se buniti da zbog ovisnosti o drugom paketu ne mogu biti obrisani. Takve pakete
obrišite posebno, ali u jednom retku:

# dpkg --purge paket1 paket2 paket3

Ponovite ovo za svaku staru distribuciju koju ste nadogradili (woody, sarge, etch, lenny).

No, ovo nije sve. Ovaj postupak će obrisati samo pakete koji u oznaci inačice imaju naziv neke o ovih distribucija. Ostali nepotrebni paketi će ostati na sustavu. Za njihovu otkrivanje i brisanje trebat ćemo druge alate, ali o tome drugom prilikom.

Povezani članci