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

Odpovedet emailem