Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

Jak cofnąć aktualizacje pacmanem w Arch Linuksie

By admin on 13 lutego, 2021

Arch Linux jest często chwalony za nowatorskie oprogramowanie i model kroczących wydań. Omawiamy te cechy bardziej szczegółowo w naszym artykule porównującym Arch Linuksa i Manjaro. Oprócz tych pochwał, Arch Linux ma również reputację systemu niestabilnego. Reputacja ta wynika z nieprzewidywalnej natury najnowocześniejszego oprogramowania. Najnowsze oprogramowanie od deweloperów może zawierać błędy, które nie były widoczne podczas wstępnych testów. W rezultacie zawsze istnieje ryzyko, że aktualizacja za pomocą menedżera pakietów, pacman, może przynieść nieoczekiwane rezultaty. Mogą one obejmować konkretny element oprogramowania, który nie działa poprawnie (lub w ogóle) lub nawet wiele aplikacji lub środowisk Desktop nie działa już zgodnie z oczekiwaniami.

Regularne tworzenie kopii zapasowych systemu GNU/Linux jest najlepszym zabezpieczeniem, aby złagodzić ból głowy, który może to spowodować. Nie brakuje rozwiązań do tworzenia kopii zapasowych dla Linuksa; niektóre z opcji tworzenia kopii zapasowych obejmują dd, BackupPC, rsync, Fsarchiver , rsnapshot. Jeśli posiadasz regularne rozwiązanie do tworzenia kopii zapasowych, może być pocieszające wiedzieć, że możesz przywrócić dane z kopii zapasowej w przypadku, gdy pacman aktualizacja spowodowała problemy, ale byłoby idealnie, gdybyś nie musiał tego robić. W tym artykule pokażemy jak cofnąć pacman aktualizacje w Arch Linuksie. Istnieją dwa sposoby aby to osiągnąć. Jeden sposób to użycie pacman cache; drugi to użycie Arch Linux Archive. Omówimy obie metody.

W tym tutorialu nauczysz się:

  • Jak cofnąć aktualizacje Arch Linuksa używając pacman cache
  • Jak cofnąć aktualizacje Arch Linuksa używając Arch Linux Archive
Jak cofnąć aktualizacje pacman w Arch Linuksie

Jak cofnąć aktualizacje pacman w systemie Arch Linux

Wymagania sprzętowe i stosowane konwencje

Wymagania sprzętowe i konwencje wiersza poleceń systemu Linux
Kategoria Wymagania, konwencje lub używane wersje oprogramowania
System Arch Linux
Oprogramowanie pacman
Inne Przywilejowany dostęp do systemu Linux jako root lub poprzez polecenie sudo.
Zastrzeżenia # – wymaga, aby dane polecenia linuksowe były wykonywane z uprawnieniami roota albo bezpośrednio jako użytkownik root, albo przez użycie polecenia sudo
$ – wymaga, aby dane polecenia linuksowe były wykonywane jako zwykły użytkownik niebędącyuprzywilejowany użytkownik

Jak cofnąć aktualizacje Arch Linuksa używając pacman cache

Za każdym razem, gdy instalujesz lub aktualizujesz pakiet pacman zapisuje ten pakiet w /var/cache/pacman/pkg/pacman pozwala również na ręczne uaktualnienie pakietu poprzez flagę -U. Jak się okazuje, ta metoda aktualizacji może być również użyta do zainstalowania starszej wersji pakietu, efektywnie obniżając jego poziom.

Obniżanie poziomu pojedynczego pakietu

Załóżmy, że właśnie zaktualizowałeś swój system poprzez komendę $ sudo pacman -Syu, a następnie otworzyłeś firefox, aby przeglądać strony internetowe, tylko po to, aby zdać sobie sprawę, że teraz zawiesza się, podczas gdy nigdy wcześniej tego nie robił. Możesz łatwo obniżyć firefox do poprzedniej wersji, którą zainstalowałeś za pomocą pacman cache.

Po pierwsze, sprawdź pakiety firefox wymienione w /var/cache/pacman/pkg/

$ ls /var/cache/pacman/pkg/firefox*

Powinieneś zobaczyć najnowszą wersję, do której właśnie się zaktualizowałeś i wszystkie poprzednie wersje, które miałeś zainstalowane. W naszym przykładzie, to jest wyjście, które otrzymujemy.

/var/cache/pacman/pkg/firefox-81.0.1-1-x86_64.pkg.tar.zst/var/cache/pacman/pkg/firefox-83.0-2-x86_64.pkg.tar.zst

Wiemy, że zaktualizowaliśmy wersję 81.0.1-1 do 83.0-2 i podejrzewamy, że mogło to spowodować problem. Aby sprawdzić tę teorię, po prostu cofnij się do wersji 81.0.1-1 używając pacman cache z następującym poleceniem.

$ sudo pacman -U /var/cache/pacman/pkg/firefox-81.0.1-1-x86_64.pkg.tar.zst
Poszukujemy Analityka Systemów Linuksowych !nstytut Geofizyczny UAF poszukuje doświadczonego analityka systemów Linux, który dołączy do zespołu analityków i inżynierów zajmujących się cyberinfrastrukturą badawczą. LOKALIZACJA: Fairbanks, Alaska, USA
APPLY NOW

Zobaczysz następujące dane wyjściowe.

loading packages...warning: downgrading package firefox (83.0-2 => 81.0.1-1)resolving dependencies...looking for conflicting packages...Packages (1) firefox-81.0.1-1Total Installed Size: 206.76 MiBNet Upgrade Size: -0.13 MiB:: Proceed with installation? 

Po wpisaniu y aby kontynuować będziesz miał zainstalowaną poprzednio wersję firefox i możesz ją otworzyć, aby sprawdzić, czy problem został rozwiązany.

Zmniejszanie wartości wielu pakietów

Używając cache pacmana, możesz zmniejszyć wartość wielu pakietów przez podanie ich jako oddzielnych argumentów do pacman -U. Na przykład

$ sudo pacman -U /var/cache/pacman/pkg/firefox-81.0.1-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/alsa-lib-1.2.3.2-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/adwaita-icon-theme-3.38.0-1-any.pkg.tar.zst

Podczas aktualizacji wielu pakietów korzystne może być przejście do katalogu /var/cache/pacman/pkg tak, aby nie trzeba było wpisywać pełnej ścieżki do każdego pakietu, który chcemy zaktualizować.

$ cd /var/cache/pacman/pkg$ sudo pacman -U firefox-81.0.1-1-x86_64.pkg.tar.zst alsa-lib-1.2.3.2-1-x86_64.pkg.tar.zst adwaita-icon-theme-3.38.0-1-any.pkg.tar.zst

Najprawdopodobniej zaczynasz myśleć, że downgrade dużej ilości pakietów w ten sposób byłby co najmniej uciążliwy. Możesz znaleźć się w sytuacji gdzie podejrzewasz, że 20 różnych pakietów może potencjalnie powodować problem lub nie masz pojęcia jakie pakiety powodują problem i chcesz je wszystkie zdegradować. Te scenariusze mogą być lepiej dostosowane do użycia Arch Linux Archive, ale zanim o tym porozmawiamy, zbadajmy kilka przykładów sytuacji, w których moglibyśmy zhakować razem rozwiązanie, aby użyć pacman cache do tego celu, bez konieczności ręcznego wpisywania każdej nazwy pakietu.

Downgrading wielu powiązanych pakietów o podobnym schemacie nazewnictwa

Załóżmy, że właśnie uruchomiłeś swój komputer po tym jak nie używałeś go przez kilka tygodni. Przystąpiłeś do aktualizacji systemu poprzez komendę $ sudo pacman -Syu i zauważyłeś, że wszystkie twoje aplikacje oparte na qt nie działają poprawnie, ale wszystkie inne aplikacje tak. Ponieważ wiele fundamentalnych pakietów qt i bibliotek ma qt w nazwie pliku i jest bardzo mało prawdopodobne, że jakiekolwiek pakiety nie-qt mają to w nazwie pliku, jest możliwe cofnięcie tylko aktualizacji qt z ostatniej aktualizacji systemu.

Kiedy wykonujesz aktualizację używając pacman zapis dokładnie co i kiedy aktualizowałeś jest przechowywany w /var/log/pacman.log. Przykładowa linia poniżej.

 upgraded qt5-xmlpatterns (5.15.1-1 -> 5.15.2-1)

Możemy użyć tego logu aby pomóc nam systematycznie aktualizować tylko pakiety qt poprzez szukanie linii w pacman.log, które pokazują pakiety zawierające qt w nazwie pliku, które zostały zaktualizowane dzisiaj i wykonując na nich pewne manipulacje tekstowe, a następnie przekazując je jako argumenty do pacman -U w pętli for. Poniższy przykład zakłada, że aktualna data to 30 listopada 2020 roku. Dostosuj datę odpowiednio, jeśli chcesz z niego skorzystać.

$ grep -a qt /var/log/pacman.log | grep 2020-11-30 > /tmp/qtupdates.txt$ awk '{print $4}' /tmp/qtupdates.txt > /tmp/lines1;awk '{print $5}' /tmp/qtupdates.txt | sed 's/(/-/g' > /tmp/lines2$ paste /tmp/lines1 /tmp/lines2 > /tmp/lines$ tr -d "" < /tmp/lines > /tmp/packages$ cd /var/cache/pacman/pkg/$ for i in $(cat /tmp/packages); do sudo pacman --noconfirm -U "$i"*; done

Downgrading all upgraded packages

Załóżmy, że właśnie uruchomiłeś swój komputer po tym, jak nie używałeś go przez kilka tygodni. Przystąpiłeś do aktualizacji systemu za pomocą polecenia $ sudo pacman -Syu i wtedy zauważyłeś, że cały system jest nienormalnie wolny. Nie masz pojęcia, co aktualizacja pakietu może być przyczyną tego, co się dzieje i chcesz tymczasowo cofnąć wszystkie 512 z nich do poprzedniej wersji, które zostały zainstalowane.
To rzeczywiście nie wymaga więcej wysiłku niż w poprzednim przykładzie. Wykonujesz te same kroki, z wyjątkiem tego, że używasz pacman.log pliku, aby uzyskać nazwy wszystkich pakietów, które zostały zaktualizowane dzisiaj, a nie tylko te, które pasują do określonego schematu nazewnictwa. Będzie to działać dla dowolnej liczby pakietów, zasadniczo funkcjonując jako duży przycisk cofania dla pacman. Poniższy przykład zakłada, że aktualna data to 30 listopada 2020 roku. Dostosuj datę odpowiednio, jeśli chcesz z niego skorzystać.

$ grep -a upgraded /var/log/pacman.log| grep 2020-11-30 > /tmp/lastupdates.txt $ awk '{print $4}' /tmp/lastupdates.txt > /tmp/lines1;awk '{print $5}' /tmp/lastupdates.txt | sed 's/(/-/g' > /tmp/lines2$ paste /tmp/lines1 /tmp/lines2 > /tmp/lines$ tr -d "" < /tmp/lines > /tmp/packages$ cd /var/cache/pacman/pkg/$ for i in $(cat /tmp/packages); do sudo pacman --noconfirm -U "$i"*; done

Jak cofnąć aktualizacje Arch Linuksa używając Archiwum Arch Linuksa

Archiwum Arch Linuksa jest oficjalnym archiwum, które zawiera migawki poprzednich wersji pakietów. Są one zapisywane w katalogu packages na stronie. Istnieją dwie potencjalne korzyści z używania Arch Linux Archive zamiast pacman cache. Po pierwsze, pacman cache zajmuje miejsce na lokalnym magazynie użytkownika. W związku z tym niektórzy ludzie zdecydują się regularnie czyścić pamięć podręczną. Po drugie, archiwum udostępnia wszystkie poprzednie wersje pakietów, nie tylko te, które zostały wcześniej zainstalowane.

Obniżanie poziomu pojedynczego pakietu

Aby obniżyć poziom pakietu do poprzedniej wersji, najpierw znajdujemy go w archiwum, a następnie używamy pacman aby obniżyć poziom do tej konkretnej wersji. Jeśli ponownie przeanalizujemy nasz poprzedni przykład obniżenia wersji Firefox, nie jesteśmy już ograniczeni do obniżenia wersji 83.0-2 do 81.0.1-1. Jak widać w archiwum firefoxa, mamy również możliwość downgrade’u do następujących wersji pośrednich: 81.0.2-1, 82.0-1, 82.0.2-1, 82.0.3-1, 83.0-1.

Aby dokonać downgrade’u do Firefox wersji 83.0-1 za pomocą Arch Linux Archive wprowadź następujące polecenie.

$ sudo pacman -U https://archive.archlinux.org/packages/f/firefox/firefox-83.0-1-x86_64.pkg.tar.zst

Downgrade wszystkich pakietów do poprzedniej daty

Inną opcją, którą masz dostępną podczas korzystania z Arch Linux Archive jest przywrócenie wszystkich pakietów w systemie do „aktualnej” wersji, która istniała w repozytoriach w określonym czasie. Może to być przydatne jeśli napotykasz problemy z systemem Arch teraz, ale pamiętasz, że kilka tygodni temu nie miałeś takich problemów. W poniższym przykładzie dokonamy downgrade’u wszystkich pakietów do 10 listopada 2020 roku. Aby dokonać downgrade’u pakietów będziemy musieli poinformować pacmana, że chcemy użyć archiwalnego repo poprzez edycję /etc/pacman.d/mirrorlist. Przed dokonaniem jakichkolwiek zmian w pliku, zalecane jest wykonanie jego kopii zapasowej, abyśmy mogli łatwo powrócić do aktualnego pliku mirrorlist kiedy będziemy chcieli.

$ sudo cp /etc/pacman.d/mirrorlist{,.bak}

Następnie edytuj swój plik /etc/pacman.d/mirrorlist za pomocą dowolnego edytora:

$ sudo vim /etc/pacman.d/mirrorlist

i zmień jego zawartość na następującą.

### Arch Linux repository mirrorlist### Created to downgrade to Nov 10th 2020Server=https://archive.archlinux.org/repos/2020/10/11/$repo/os/$arch

Teraz, aby sfinalizować aktualizację pakietów, wprowadź następujące polecenie.

$ sudo pacman -Syyuu

Podsumowanie

W tym artykule przeanalizowaliśmy dwie metody cofania lub obniżania wersji pakietów w Arch Linuksie, pacman cache i Arch Linux Archive. Obie metody są potężne i mają swoje zalety. Zastanówmy się krótko nad tymi zaletami, kończąc ten artykuł.

Główną zaletą korzystania z pacman cache jest to, że nie wymaga połączenia z Internetem ani pobierania pakietów, ponieważ jest przechowywany lokalnie. W rezultacie, proces obniżania wersji jest szybszy. Kolejną zaletą jest to, że pacman cache zawiera wersje pakietów, które już wcześniej zainstalowałeś w swoim systemie, dlatego najprawdopodobniej masz pojęcie jak dobrze one działały. Trzecią korzyścią jest to, że można obniżyć poziom wielu pakietów bez konieczności edytowania jakichkolwiek plików konfiguracyjnych.

Główną korzyścią z używania Arch Linux Archive jest to, że można obniżyć poziom do dowolnej wersji pakietu, niezależnie od tego, czy kiedykolwiek wcześniej go zainstalowaliśmy. Kolejną zaletą jest to, że nie zajmuje on lokalnego miejsca w pamięci, więc jeśli masz mało miejsca i chciałbyś wyczyścić cache pacmana, wiesz, że jest inna realna opcja aktualizacji. Trzecią korzyścią jest to, że możesz łatwo obniżyć rangę każdego pakietu w twoim systemie tylko przez edycję jednego pliku konfiguracyjnego.

Zobacz wpisy

21 Day Fix Plan Posiłków A | Plan Posiłków A 1,200-1,499 Kalorii
Growing Croton Plants Indoors

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Najnowsze wpisy

  • Firebush (Polski)
  • Prognoza stawek CD na 2021 rok: Stopy procentowe prawdopodobnie pozostaną na niskim poziomie, ale mogą wzrosnąć w dalszej części roku
  • Jak ustrukturyzować dokumentację systemu zarządzania jakością
  • Zdrowe Gry i Zajęcia dla Dzieci | UIC Online Informatics
  • Wheat Ales (American) (Polski)
  • Korzyści z karmienia piersią po roku
  • Czy bezpiecznie jest wrzucać fusy z kawy do zlewu | Atomic Plumbing
  • Cool-Down After Your Workout (Polski)
  • Nasza praca
  • Najlepsza ręczna maszyna do szycia do kupienia: 2020

Meta

  • Zaloguj się
  • Kanał wpisów
  • Kanał komentarzy
  • WordPress.org

Archiwa

  • Marzec 2021
  • Luty 2021
  • Styczeń 2021
  • Grudzień 2020
  • DeutschDeutsch
  • NederlandsNederlands
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • PolskiPolski
  • 日本語日本語
©2021 Info Cafe | WordPress Theme by SuperbThemes.com