Удаление программ, установленных из исходного кода с помощью Stow в Linux
В этом руководстве объясняется, что такое GNU Stow, как установить GNU Stow в Linux и как удалять программы, установленные из исходного кода с помощью GNU Stow.
Что такое GNU Стоу?
Иногда вам приходится устанавливать некоторые программы путем ручной компиляции из исходного кода. Потому что они могут быть недоступны в официальных или сторонних репозиториях, поэтому вы не сможете установить их с помощью обычных менеджеров пакетов.
Как вы, возможно, уже знаете, когда вы устанавливаете программы из исходного кода, файлы пакета будут скопированы в несколько мест, например /usr/local/bin
, /usr/local/etc/
, в файловой системе.
Если установленная программа из исходного кода не имеет встроенной программы удаления, удаление пакетов, когда они вам больше не нужны, будет утомительной задачей.
Возможно, вам придется потратить пару (или несколько) минут, чтобы найти эти файлы пакетов и удалить их вручную. Именно этим я и занимался до тех пор, пока не наткнулся на утилиту под названием "GNU Stow". К счастью, у Stow есть простой способ управлять программами, установленными из исходного кода.
Цитируя официальный сайт,
GNU Stow — это менеджер фермы символических ссылок, который берет отдельные пакеты программного обеспечения и/или данных, расположенные в разных каталогах файловой системы, и создает впечатление, что они установлены в одном и том же месте.
Проще говоря, Stow помогает вам организовать файлы пакетов таким образом, чтобы ими было легко управлять. В этом методе файлы не будут копироваться в несколько мест. Вместо этого все файлы сохраняются в определенной папке, обычно под именем самой программы, и Stow создает символические ссылки на все файлы программ в соответствующих местах.
Например, /usr/local/bin
может содержать символические ссылки на файлы внутри /usr/local/stow/vim/bin
<, /usr/local/stow/python/bin
и т. д., а также рекурсивно для любых других подкаталогов, таких как .../ поделиться
, .../man
и т. д.
В этом уроке я покажу вам, как легко управлять программами, установленными из исходного кода, с помощью Stow, на практическом примере. Читай дальше.
Установите GNU Stow в Linux
GNU Stow доступен в репозиториях по умолчанию популярных операционных систем Linux.
В Arch Linux и его вариантах выполните следующую команду, чтобы установить Stow.
sudo pacman -S stow
В Debian, Ubuntu, Linux Mint, Pop OS:
sudo apt install stow
В Fedora:
sudo dnf install stow
В RHEL/CentOS, AlmaLinux и Rocky Linux:
sudo dnf install epel-release
sudo dnf install stow
Удаление программ, установленных из исходного кода с помощью Stow в Linux
Как я уже упоминал ранее, все программные файлы пакета будут сохранены в корневой папке, расположенной в /usr/local/stow/
. В этом корневом или родительском каталоге каждый пакет будет сохранен в своем собственном частном подкаталоге.
Например, если мы установим редактор Vim из исходного кода, все программные файлы и каталоги, связанные с Vim, будут сохранены в /usr/local/stow/vim
папка. Если вы устанавливаете python из исходного кода, все файлы, связанные с Python, будут храниться в папке /usr/local/stow/python
и так далее.
Позвольте мне установить программу, например hello, из исходного кода.
Сначала загрузите архив программы hello.
wget http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz
Извлеките загруженный архив с помощью команды:
tar -zxvf hello-2.10.tar.gz
Приведенная выше команда создаст каталог с именем «hello-2.10» в текущем рабочем каталоге и извлечет все его содержимое.
Перейдите в извлеченный каталог:
cd hello-2.10/
Запустите следующую команду с опцией --prefix.
./configure --prefix=/usr/local/stow/hello
Приведенная выше команда сохранит файлы сборки в указанном месте, т. е. в нашем случае /usr/local/stow/hello
.
Наконец, соберите и установите программу hello, используя следующие команды:
make
sudo make install
Вот и все. Программа hello установлена в папку /usr/local/stow/hello/
. Вы можете проверить это с помощью команды «ls», как показано ниже.
$ ls /usr/local/stow/hello/
bin share
Наконец, перейдите в каталог /usr/local/stow/
и выполните следующую команду, чтобы сгенерировать необходимые символические ссылки.
cd /usr/local/stow/
sudo stow hello
Все сделано!
Только что произошло то, что все файлы и каталоги, содержащиеся в пакете hello, были связаны с каталогом /usr/local/
. Другими словами, /usr/local/stow/hello/bin
имеет символическую ссылку на /usr/local/bin
и /usr/local/stow/hello/share
имеют символическую ссылку на /usr/local/share
> и /usr/local/stow/hello/share/man
имеет символическую ссылку на /usr/local/share/man
и так далее.
Вы можете проверить их с помощью команды 'ls'
:
$ ls /usr/local/bin/
hello
Давайте проверим, работает программа hello или нет с помощью команды:
$ hello
Hello, world!
Да, это работает!!
Аналогичным образом вы можете установить программы, как описано выше, в отдельный подкаталог.
Вот содержимое корневого каталога Stow:
tree /usr/local/stow/
Вывести список содержимого корневого каталога Stow
Видеть? Программа hello устанавливается в папку "/usr/local/stow/hello/"
. Аналогично, все пакеты будут храниться в своем собственном каталоге.
Вот и основная часть. Давайте удалим программу hello. Для этого перейдите в каталог /usr/local/stow/
:
cd /usr/local/stow/
..и выполните следующую команду:
sudo stow --delete hello
Удалить программу с помощью Stow
Программа hello только что была удалена. Вы можете проверить, действительно ли он удален или нет, с помощью команды:
$ hello
-bash: /usr/local/bin/hello: No such file or directory
Запустите программу «Привет, мир»
Видеть? Здравствуйте, программа удалена!
Обратите внимание, что Стоу удалил только символические ссылки. Все программные файлы и каталоги, связанные с программой hello, по-прежнему доступны в папке /usr/local/stow/hello
. Таким образом, вы можете установить программу hello еще раз, не загружая исходный файл.
Если программа hello вам больше не нужна, просто удалите ее папку.
sudo rm -fr /usr/local/stow/hello/
Чтобы узнать более подробную информацию о Stow, обратитесь к справочным страницам.
man stow
Заключение
GNU Stow помогает вам удалять программы так же легко, как вы их устанавливаете. Если вам интересно, как эффективно управлять множеством программ, установленных из исходного кода, GNU Stow — одна из таких программ, которая значительно упрощает эту задачу. Попробуйте, вы не будете разочарованы.
Ресурсы:
- Домашняя страница GNU Stow
- Руководство по хранению
Рекомендуем прочитать:
- Как найти и удалить неиспользуемые пакеты в Linux