Portál AbcLinuxu, 30. dubna 2025 20:57
Pokud používáte distribuci ArchLinux, pak byste možná měli vědět o jedné její slabině, o které jsem se já nedočetl ze žádných pre-install materiálů. Jde o situace, kdy se vám znechutí novější verze programu (i ze stable větve) díky své nefunkcionalitě a chcete zpět na starší verzi. "Starší verzi? Co to je?" vybafne na vás systém.
Mám-li být konkrétní, jde o core/gcc 4.3.0-1 nainstalovaný ze stable repozitáře. Problém jsem měl velmi podobný, jako zakladatel threadu nalezitelného přes Google. Na Archlinuxu, který jsem si kdysi zkušebně instaloval na stolním PC vedle Windows (rodinný desktop PC) zatím žádný mnou prováděný downgrade nebyl proveden, takže jsem se s nadšením vrhl na nový úkol.
Manuálová stránka pacmanu nepomohla, stejně tak jeho zakompilovaný help. Mé nadšení setřela až informace získaná z ArchWiki - downgradovat možné je, ale pouze pokud starší balíček máte v cache nebo pokud je na mirrorech (které údajně nejde použít jako další mirrory v pacman.conf). Nevím, co mě to potkalo za štěstí, možná instinkt a možná 89% disk space use, prostě spustil jsem hned po upgradu systému pacman -Scc
(vyčistil veškeré package cache), tudíž jsem byl odkázán na mirrory. Na uvedené stránce na ArchWiki jsem prošel první tři a všude jen gcc 4.3.0 .. po neúspěšném pátrání jiného řešení mě nakopla statická elektřina zkusit poslední mirror v listu - měl onen starší balíček.
Takže jsem jej z disku nainstaloval (vlastně "upgradenul"), přemazal si tak gcc-4.3.0 a žil šťastně až do smrti... né, to by bylo moc jednoduché. S gcc-4.3.0 se totiž updatovaly všechny věci k tomu náležející (java gcc, ...), které už na mirrorech nejsou. Rovněž mi kompilace vyhazovaly něco jako
g++: /usr/lib/gcc/i686-pc-linux-gnu/4.3.0/../../../crti.o: No such file or directory
- vyřešeno (dočasně) symlinkem na 4.2.3 (ten starší).
g++: /usr/lib/gcc/i686-pc-linux-gnu/4.3.0/crtbeginS.o: No such file or directory
g++: /usr/lib/gcc/i686-pc-linux-gnu/4.3.0/crtendS.o: No such file or directory
g++: /usr/lib/gcc/i686-pc-linux-gnu/4.3.0/../../../crtn.o: No such file or directory
Nevím, co vývojáře přimělo do stable větve hodit podobnou věc, na Gentoo mám pořád 4.1.2, jedna věc je však jistá; hned, jakmile si najdu čas, mažu Archlinux a zkusím asi Debian.
Debian jsem nikdy moc nepoužíval a pracoval na něm pouze na "pracovní úrovni" - nezabýval jsem se moc správou balíčků, zkoušel jsem tedy hledat něco jako "specifika Debianu" - nalezl alespoň Reference Card (jen kdyby se to třeba někomu hodilo), ale rád bych uvítal nějaké tipy & triky. Od dřívější instalace mě odradil apt-get; restartoval (resp. pokusil se neúspěšně restartovat) mysql server na produkčním systému po jeho upgradu. Je tohleto normální? Já jen pevně doufám, že má nějaký nastavitelný option tohle nedělat.
UPDATE: Takže reinstaluji asi hned zítra, make hlásí očekávané podivné errory.
Tiskni
Sdílej:
Dříve to bylo skoro po každém pacman -SyuA nebyl to náhodou trochu problém mezi klávesnicí a židlí? Zajímavé, že já se s tím nesetkal nikdy (a to už Arch Linux používám snad 4 roky jestli se dobře pamatuju). Stačilo že jsem si vždy před upgradem přečetl RSS zpráviček z archlinux.org a pak při upgradu zprávy co vypisuje pacman, zařídil se podle toho, a problém pak nikdy nebyl
/etc/defaults/
).
Ad upgrade: Ťažko povedať či je okamžitý reštart nevýhoda - nevidím zmysel v tom, že spravím upgrade a s reštartom čakám na "vhodnú chvíľu".
No... to je jedina velka nevyhoda Debianu... ze po aktualizaci/instalaci restartuje/rovnou spusti daemona, i kdyz musim priznat, ze na desktopu me to nikdy moc netrapilo, takze jsem obejiti nehledal...Na desktopu je to jedno. Na serveru se to holt jen tak neda, ale IMHO je to dobre, ze restartuje. Ono upgradovat nejakej daemon, ale nechat bezet starou verzi, ktera by pak mohla pozadovat pristup k nejakymu souboru, kterej uz je ale odinstalovanej, to si koleduje o hodiny hledani problemu a nervy v kyblu. To je fakt lepsi pockat na aktualizaci treba na vecer, udelat upgrade, pri kterym se automaticky server restartne a pobezi uz novy.
PKGBUILD
pro starší verzi programu (na což ve většině případů postačí triviální úprava řádku pkgver
), pak jedno krátké makepkg
, instalace staronového balíčku pomocí pacman
a a připsání jména balíčku do direktivy IgnorePkg
v /etc/pacman.conf
.
emerge =program-1.2.3
, to je síla, co? fontconfig
, která už v Portage – ač jediná pro mé účely funkční – není. Řešení přes Portage Overlay a ebuild s jiným číslem verze v názvu je pak plus mínus autobus stejně elegantní, jako řešení Archu Tady je spíš problém mezi klávesnicí a židlí. Downgrade se dělá přes ABS.Tak proč to, proboha, není zmíněno v tom "downgrade howto" ? Asi jako psát článek o software na Gentoo a zapomenout na emerge
abs
), upravit v něm číslo verze a zkompilovat jej pomocí makepkg
, to není nic složitého.
LANG= wget
Pondělí: jsem spokojený uživatel XYZ Úterý: jsem spokojený uživatel XYZ ... Sobota: jsem spokojený uživatel XYZ Neděle: spím Pondělí: jsem spokojený uživatel XYZ ...
Pokud si dáš debian stable, tak budeš mí opačný problém: staré verze všeho, ale poběží to. Pokud si dáš testing, může se ti stát to samé. To prostě musíš rolovat ať chceš nebo nechceš.Len na doplnenie a rozšírenie: Mnoho sa dá vyriešiť zaradením repozitárov z www.backports.org, v prípade desktopu je tiež zaujímavý repozitár www.debian-multimedia.org.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.