Peter Rosa wrote on 03/25/2015 16:00:
[...]
bol to len upgrade 8.4 na aktualnu verziu + instalacia pkg + upgrade
vsetkych portov. Isiel som ako vzdy podla /usr/src/Makefile (buildworld,
kernel, reboot, mergemaster -p, installworld, delete-old, mergemaster,
reboot, delete-old-libs). Potom cd ports-mgmt/pkg, install, clean. Potom
pkg_deinstall pkgutils (alebo ako sa volal ten port). Potom portupgrade -a.
Logicku chybu tam nevidim, napriek tomu vsak na disku je napr.:
# ls /usr/local/sbin/p*
/usr/local/sbin/pkg
/usr/local/sbin/pkg-static
/usr/local/sbin/pkg2ng
/usr/local/sbin/pkg_cutleaves
/usr/local/sbin/pkg_deinstall
/usr/local/sbin/pkg_fetch
/usr/local/sbin/pkg_glob
/usr/local/sbin/pkg_sort
/usr/local/sbin/pkg_which
/usr/local/sbin/pkgdb
/usr/local/sbin/pkgdu
/usr/local/sbin/portcvsweb
/usr/local/sbin/portinstall
/usr/local/sbin/ports_glob
/usr/local/sbin/portsclean
/usr/local/sbin/portsdb
/usr/local/sbin/portsvnweb
/usr/local/sbin/portupgrade
/usr/local/sbin/portversion
/usr/local/sbin/purge
V /usr/local jsou jen veci z portu, takze cast toho patri baliku
ports-mgmt/pkg, cast ports-mgmt/portupgrade a tak podobne. Ostatne co z
ceho pochazi muzes zjistit jednoduse prikazem pkg which
# pkg which /usr/local/sbin/pkg-static
/usr/local/sbin/pkg-static was installed by package pkg-1.4.12
# ls /usr/local/bin/pkg*
/usr/local/bin/pkg-config@ -> pkgconf
/usr/local/bin/pkgconf
# ls /usr/sbin/pkg*
/usr/sbin/pkg
/usr/sbin/pkg_add
/usr/sbin/pkg_create
/usr/sbin/pkg_delete
/usr/sbin/pkg_info
/usr/sbin/pkg_updating
/usr/sbin/pkg_version
/usr/sbin/pkg je jen bootstrap, ktery zavola instalaci ports-mgmt/pkg
/usr/sbin/pkg_* jsou systemove utility, ktere jsou soucasti base systemu
a nedaji se "odinstalovat" jako porty. Ve FreeBSD 10.1 uz tyhle utility
nejsou, v 8.4 a 9.3 jsou a zustanou tam "na vzdy".
Vyzera to tak, ze teraz je tam napr. len jeden perl (5.16.3), podla
ocakavania. Mna hlavne prekvapila skutocnost, ze portupgrade pri druhom
behu nehlasil jediny problem a odinstalovaval a upgradoval (podla mna)
uz neexistujuce verzie portov. Preto som sa do toho zavrtal. Mozno o nic
nejde a taketo spravanie (tj. ze nehlasi chyby ako neexistujuci subor a
pod.) sposobuje direktiva FORCE_PKG_REGISTER=true v /etc/make.conf.
Myslim, ze s tim FORCE_PKG_REGISTER je to prave ten duvod, proc ti to
nehlasi obvykle chyby, ktere by to jinak hlasilo.
Nicmene se ti proste tim druhym spustenim pkg2ng podarilo prepsat
puvodni udaje v sqlite databazi, kterou vyuziva pkg a to pak
nekontroluje nejake soubory na disku, ale udaje, co ma v DB. Takze kdyz
smazes nejaky soubor na disku, pkg ho pak "odinstaluje" tim, ze smaze
zaznam z vlastni databaze. I kdyz by to asi jeste vyhodilo nejaky
warning, ze na disku ten soubor nebyl, nebo treba "checksum mismatch" a
tak podobne.
Mirek
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l