Поиск по сайту:

Переустановите все пакеты с Pacman в Arch Linux


Иногда вам может потребоваться переустановить все пакеты в Arch Linux.

Допустим, на вашем компьютере установлен Arch Linux, и он полностью функционален. Здесь нет проблем. Теперь представьте, что вы играете со своей системой Arch Linux и случайно удалили некоторые системные файлы и папки. Вы в ужасе говорите: «О нет! Я не должен был играть в Бога с sudo». Не сходите с ума пока. Возможно, вы все еще можете исправить это с помощью Pacman. Вы можете использовать менеджер пакетов Pacman для переустановки всех системных пакетов на вашем компьютере с Arch Linux.

Другой сценарий может быть, скажем, вы сделали полное обновление системы. Все прошло гладко. Но как только вы перезагрузите свою систему, она не запустится, и вы получите предупреждения об отсутствии некоторых файлов. Это также можно исправить, переустановив все пакеты на вашем компьютере с Arch Linux.

В этой статье я покажу вам, как переустановить все пакеты с Pacman в Arch Linux. Давайте начнем.

Переустановка исправляет отсутствующие файлы

В этом разделе я удалю некоторые файлы из /usr/bin и восстановлю их, переустановив пакет, чтобы показать вам, что переустановка устраняет проблемы, связанные с отсутствующими или поврежденными файлами.

Я собираюсь запустить следующую команду, чтобы удалить все двоичные файлы, связанные с grub:

$ rm -rfv /usr/bin/grub-*

Как видно на скриншоте ниже, файлы удалены.

Теперь я собираюсь переустановить пакет grub с помощью следующей команды:

$ pacman -S --force --noconfirm grub

Пакет grub переустановлен.

Теперь давайте выполним ls -la grub-*, и, как вы можете видеть на снимке экрана ниже, удаленные файлы вернулись.

Таким образом, переустановка пакетов может восстановить сломанные системы Arch Linux.

Создание сценария для переустановки всех пакетов

Я не собираюсь переустанавливать пакеты один за другим. Вместо этого я напишу сценарий bash, чтобы сделать это автоматически.

Сначала создайте новый каталог recovery/ с помощью следующей команды:

$ mkdir recovery

Теперь перейдите во вновь созданный каталог с помощью следующей команды:

$ cd recovery

Теперь экспортируйте все имена пакетов, установленных в вашей системе Arch Linux, с помощью следующей команды:

$ pacman -Qq > packages.txt

Теперь создайте новый сценарий оболочки с помощью следующей команды:

$ nano reinstall.sh

Пустой файл следует открыть в текстовом редакторе nano.

Теперь добавьте эти строки в файл:

#!/bin/bash
for pkgName in $(cat packages.txt

do
  pacman -S --force --noconfirm $pkgName
done
echo "Reinstalled all packages."

Теперь нажмите + x, затем нажмите y, а затем нажмите , чтобы сохранить файл.

Теперь сделайте скрипт исполняемым с помощью следующей команды:

$ chmod +x reinstall.sh

Переустановка всех пакетов, когда вы можете загрузиться в систему Arch Linux

Если вы можете загрузиться на свой компьютер с Arch Linux, то очень легко переустановить все пакеты с помощью диспетчера пакетов Pacman с помощью сценария, который я создал ранее.

Сначала перейдите в каталог recovery/:

$ cd recovery/

Теперь запустите сценарий reinstall.sh следующим образом:

$ ./reinstall.sh

Как видите, пакеты переустанавливаются.

Это должно занять много времени, в зависимости от вашего интернет-соединения.

Переустановка всех пакетов, если вы не можете загрузиться в систему Arch Linux

Если вам не удается загрузиться в систему Arch Linux, возьмите установочный компакт-диск Arch Linux и загрузитесь в него.

Как только вы загрузитесь с установочного компакт-диска Arch Linux, подключитесь к Интернету. Если вы используете проводное соединение и ваша сеть настроена с использованием DHCP, все, что вам нужно сделать, это выполнить следующую команду:

$ dhclient -v

Затем вам нужно смонтировать Root и Boot (также раздел EFI, если вы используете таблицу разделов GPT) вашего сломанного Arch Linux в /mnt каталог. Мой корневой раздел — /dev/sda3, загрузочный раздел — /dev/sda2, а раздел EFI — /dev/sda1.

Смонтируйте эти разделы в /mnt с помощью следующих команд:

$ mount /dev/sda3 /mnt
$ mount /dev/sda2 /mnt
$ mount /dev/sda3 /mnt

Теперь выполните Chroot в каталог /mnt.

Перейдите в каталог recovery/ и выполните сценарий reinstall. Если вам не удалось их создать, вы можете следовать разделу Создание сценария для переустановки всех пакетов этой статьи и создать его сейчас.

$ cd /root/recovery

$ ./reinstall.sh

Должен начаться процесс переустановки пакета, как вы можете видеть на скриншоте ниже.

После завершения переустановки выполните следующую команду, чтобы выйти из Chroot:

$ exit

Затем перезагрузите компьютер. Ваша проблема должна быть решена.

Вот как вы переустанавливаете все пакеты Arch Linux с Pacman. Спасибо, что прочитали эту статью.

Статьи по данной тематике: