В одной из наших предыдущих статей мы показали вам, как устанавливать и удалять программное обеспечение в Linux за пределами обычных менеджеров пакетов. В этой статье мы также видели, что хорошо построенное программное обеспечение поставляется со встроенными деинсталляторами. Таким образом, вы можете удалить пакеты так же легко, как вы их устанавливаете.
К сожалению, это не всегда так. В дикой природе существует множество упаковок, которые не допускают чистого удаления. Иногда у вас нет выбора, кроме как использовать такой пакет, потому что вам нужна функциональность. Тем не менее, это решение проблемы. В этой статье мы покажем вам, как использовать программное обеспечение под названием «stow», чтобы легко удаляет пакеты, установленные в Linux.
Пакет «stow» должен быть доступен в ваших обычных хранилищах пакетов. В этом примере мы используем CentOS, поэтому нам нужны расширенные библиотеки EPEL. Их можно установить с помощью команды:
yum install epel-release
И после этого установите stow следующим образом:
yum install stow
Нажмите «Да», чтобы подтвердить установку:
Теперь, когда stow установлен , мы должны выбрать, где хранить файлы пакетов.
Обычная команда «make install» копирует файлы пакетов в различные места. stow работает, сохраняя их всех в одном месте в одном каталоге, а затем создавая символические ссылки туда, где они должны были отправиться первоначально.
Поэтому нам нужно выбрать каталог, в котором stow хранит все файлы пакета. По соглашению, это обычно:
/usr/local/stow/
И в этом месте у нас есть один единственный каталог для каждого пакета. Поэтому, если мы хотим установить программу «hello», которую мы использовали в качестве примера в предыдущей статье, файлы будут храниться в:
/usr/local/stow/hello
Но это место может быть любым. Чтобы показать, мы будем хранить файлы в следующем месте:
/home/bhagwad/stow/
В предыдущей статье мы видели, что для установки из источника требуются следующие команды:
./configure make make install
Чтобы установить с stow, мы просто изменим последний шаг:
make install prefix=/home/testuser/stow/hello
Опция «prefix» указывает, что мы размещаем пакеты в данном месте. Это местоположение не что иное, как выбранный каталог на шаге 2 с добавлением имя пакета в виде отдельной папки. Это приводит к тому, что файлы будут установлены в данное место, как показано ниже:
Теперь у нас есть все файлы, необходимые для пакета в папке в каталоге stow. Время для волшебства!
Чтобы установить пакет, сначала введите «cd» в каталог stow следующим образом:
cd /home/testuser/stow
Убедитесь, что папка с файлами – это всего лишь один каталог под вашим текущим местоположением. Теперь введите:
stow hello
Это оно! Пакет теперь установлен в вашей системе. Вот скриншот команды «hello», работающей по назначению:
Теперь продолжим. Настоящая выгода еще впереди. Проба.
Самая важная часть stow – это то, насколько легко удалить пакеты из системы. Нет необходимости хранить исходные пакеты или что-то еще. Просто перейдите в каталог stow, как на шаге 4, и введите:
stow --delete hello
И все! Ниже вы можете видеть, что команда больше не работает после этого шага:
Что касается системы, пакет полностью удален! Приятно помнить, что файлы фактически не исчезли. Они все еще находятся в каталоге «hello». Вы также можете легко установить пакет с помощью команды stow. Если вам больше не нужны файлы, просто удалите папку «hello», и ваша система будет чистой!
Мы рекомендуем использовать stow каждый раз, когда вы устанавливаете пакет из исходного кода. Не стоит рисковать и использовать плохо написанное программное обеспечение, распыляющую вашу систему с файлами повсюду, и которые являются неприятностью для удаления после этого. Stow гарантирует, что все они аккуратно содержатся в одном месте, затем отслеживает символические ссылки и удаляет их после. Это фантастическое решение!