Periodic, e necesar de făcut upgrade la softul ce rulează pe server.
Ca și orice sistem, FreeBSD are diverse unelte ce ușurează viața admin-ului. Spre exemplu eu, folosesc portupgrade, unealtă comodă pentru a face upgrade la softul instalat și dependențele lui. Scopul acestui articol este de a scoate la suprafață o “problemă” de care m-am împiedicat chiar azi făcând ugrade la portupgrade folosind portupgrade :)
Să nu întind pe câteva pagini, iată detaliile – portupgrade este un script scris în Ruby, respectiv Ruby este o dependență pentru el. Astăzi am re-împrospătat colecția de port-uri
1 |
# portsnap fetch update |
după care, am verificat dacă portupgrade e up to date
1 2 |
# pkg_version -vs portupg portupgrade-2.4.9.5,2 < needs updating (port has 2.4.12,2) |
Am decis să-l re-înoiesc, inclusiv și softul de care depinde
1 |
# portupgrade -R portupgrade |
La un moment dat, m-am trezit cu niște erori
1 2 3 4 5 6 7 8 9 |
... gzip -cn pkgtools.conf.5 > pkgtools.conf.5.gz ===> misc (all) ===> misc/bash (all) Warning: Object directory not changed from original /usr/ports/ports-mgmt/portup ===> misc/tcsh (all) Warning: Object directory not changed from original /usr/ports/ports-mgmt/portup ===> misc/zsh (all) Warning: Object directory not changed from original /usr/ports/ports-mgmt/portup |
Puțin am căzut pe gânduri, căci mai făceam și alte chestii în paralel, apoi mi-am dat seama, Ruby s-a pus cu versiunea 1.9 pe când portupgrade curent folosea versiunea 1.8
Soluția este de a șterge pachetele și de a le instala din nou (în cazul meu, am re-instalat și bash-4.2.45 cu versiune mai nouă)
1 2 3 4 5 6 7 8 9 10 11 |
# pkg_info -Rr portupgrade-2.4.9.5,2 Information for portupgrade-2.4.9.5,2: Depends on: Dependency: ruby-1.9.3.484_1,1 Dependency: db42-4.2.52_5 Dependency: ruby18-bdb-0.6.6 # pkg_delete portupgrade-2.4.12,2 ruby18-bdb-0.6.6 # cd /usr/ports/ports-mgmt/portupgrade # make install clean |
Până la urmă, m-am trezit cu mult mai multe probleme, greu de descris în acest articol.
Și la final, o mică concluzie – e bine de făcut upgrade la soft periodic, căci cu timpul apar tot mai multe versiuni noi, dependențe și incompatibilități și te trezești că ai de rezolvat un puzzle complicat și pierzi o grămadă de timp. Chiar, uneori îți vine să ștergi totul și să reinstalezi de l capăt :)