Portál AbcLinuxu, 1. května 2025 02:24
Jen krátce ohledně upgradu glibc
na 2.16.0-2 na Arch Linuxu v testingu.
Při aktualizaci (vzdálené přes SSH) to na mě teď vyplivlo, že došlo ke konfliktu souborů ve FS. Balíček se snažil nějak šachovat s /lib
a nešlo mu to (selhalo to). Spustil jsem to jako správný blázen s --force
a zůstal jsem se zdánlivě nefunkčním systémem. Všechny příkazy vracely "no such file or directory", i když jejich binárky existovaly a FS nebyl připojený s "noexec
".
Našel jsem tenhle uzavřený bugreport, kde měl někdo stejný problém a jistý chytroprd mu tam odpověděl, že to má vyřešit jako člověk (místo toho aby napsal jak) a bug zavřel. Nefungovala mi žádná binárka (ani ls
), tak mě napadlo použít busybox
, který naštěstí fungoval a snažil jsem se zjistit co se dělo s /lib
. Pak mi došlo, že se vše přesunulo do /usr
a stačí /lib
dát pryč a vytvořit místo toho symlink do /usr/lib
a pak už to fungovalo.
# nejdřív se ujistěte, že máte busybox nainstalovaný a pak: pacman -Sf glibc busybox mv /lib /lib.bak busybox ln -s /usr/lib /lib
To je vše. Ještě že máme ten BusyBox
Tiskni
Sdílej:
Chytroprdem jsem ho nazval proto, že neposkytl (odkaz na) řešení a jen dělal chytrýho. Kdyby dělal chytrýho a zároveň poskytl to řešení, tak neceknu.Řešení se povalují snad na všech mailing listech, IRC a dost možná i na fóru.
Testing je AUR?Ne. Ale v testingu by nemělo být kromě glibc nic, co má věci v /lib. Tudíž to musel být nějaký balíček z AURu, co to pokazil. Případně je tu ještě možnost, že je tam nějaký pochybný bordel, který není součástí žádného balíčku. Jo, teď mě napadá ještě jedna možnost (a řekl bych, že dost pravděpodobná), za kterou může pacman, protože v něm není možné vynutit pořadí aktualizovaných balíčků – k aktualizaci glibc došlo dříve, než k aktualizaci ostatních balíčků a ty tedy neodstranily své soubory z /lib před tím, než glibc začalo čachrovat se symlinky. Pak by pomohlo něco jako
pacman -Syu --ignore glibc && pacman -S glibc
plus je tomuto kroku mírně nakloněnTohle mě zajímá. Nějaké důvody, proč by to mělo být lepší? Zatím jsem nikde neviděl opravdu dobrý důvod, proč to tak mít. Pořád to jsou jen vyjádření typu: Fedora to tak má (proč?), Solaris to tak má (proč?), všechny binárky jsou v /bin i v /usr/bin (máme přece PATH), už vyžadujeme, aby /usr bylo namountováno v initramfs (jak to s tím souvisí?). Když už, tak mi přijde rozumnější udělat merge opačným směrem – ušetří to psaní (což je samo o sobě chabý důvod).
Taky jsem původně navrhoval merge opačným směrem. Ale nechal jsem se přesvědčit, že je lepší mountovat jeden /usr než jednotlivě /bin, /sbin, /lib a k tomu ještě /usr (protože například /usr/include, /usr/share, /usr/doc, …). Nový /usr tak sdružuje všechna neměnná data pohromadě v jednom filesystému.To dává smysl, hlavně vzhledem k počtu adresářů s nestálým obsahem co jsou v /.
Co ale prakticky neexistuje, jsou nějaké relevantní důvody proti tomuto kroku v době, kdy systém bez /usr není tak jako tak považován za plně funkční.To ne, ale přijde mi to takový krok stranou, který nic nezmění.
To ne, ale přijde mi to takový krok stranou, který nic nezmění.Přesně z toho důvodu píšu, že jsem mu nakloněn mírně :). Nemyslím si, že by to něco měnilo, nemyslím si, že by to bylo špatně, a myslím si, že to má nějaké drobné výhody.
čo platilo včera dnes nieje pravda
1. Toto platí u libovolné distribuce, akorát Arch to má "rychlejší".
2. Je to jenom prostě přirozená reakce na aktuální dění v oblasti (svobodného, otevřeného) softwaru.
1. Distrá čo používam používajú v danej verzií backporty, takže nič sa nemení.čo platilo včera dnes nieje pravda1. Toto platí u libovolné distribuce, akorát Arch to má "rychlejší".
2. Je to jenom prostě přirozená reakce na aktuální dění v oblasti (svobodného, otevřeného) softwaru.
Jenom dodám, že tu "cenu" za aktuální software rád "zaplatím".
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.