Простой способ удалить программы, установленные из исходников в Linux

Не все программы доступны в официальных или сторонних репозиториях, поэтому вы не можете установить их с помощью обычных менеджеров пакетов.

Иногда приходится устанавливать программы вручную, компилируя их из исходного кода.

Как вы, возможно, уже знаете, когда вы устанавливаете программы из исходного кода, файлы пакета будут скопированы в несколько мест, таких как /usr/local/bin, /usr/local/etc/, в файловой системе.

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

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

Это то, чем я занимался до тех пор, пока не наткнулся на утилиту под названием «GNU Stow».

К счастью, у Stow есть фантастический способ легко управлять программами, установленными из исходного кода.

Проще говоря, Stow помогает вам упорядочить файлы пакетов так, чтобы ими было легко управлять.

В этом методе файлы не будут скопированы в несколько мест.

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

Например, /usr/local/bin может содержать символические ссылки на файлы в /usr/local/stow/vim/bin, /usr/local/stow/python/bin и т. д.

А также рекурсивно для любых других подкаталогов, таких как…/share, … /man, и так далее.

В этом руководстве я покажу вам, как с помощью Stow легко управлять программами, установленными из исходного кода, на практическом примере.

Установка GNU Stow

GNU Stow доступен в репозиториях по умолчанию популярных операционных систем Linux.

В Arch Linux и его вариантах выполните следующую команду, чтобы установить Stow.

$ sudo pacman -S stow

на DebianUbuntuLinux Mint:

$ sudo apt install stow

на Fedora:

$ sudo dnf install stow

на RHEL/CentOS:

$ sudo yum install epel-release
$ sudo yum install stow

Как легко удалить программы, установленные из исходников в Linux

Как я уже упоминал ранее, все программные файлы пакета будут сохранены в корневой папке, расположенной в /usr/local/stow/.

В этом корневом или родительском каталоге каждый пакет будет сохранен в своем собственном частном подкаталоге.

Например, если мы установим редактор Vim из исходного кода, все программные файлы и каталоги, связанные с Vim, будут сохранены в папке /usr/local/stow/vim.

Если вы устанавливаете python из исходного кода, все файлы, связанные с python, будут храниться в /usr/local/stow/python и так далее.

Позвольте мне установить программу, например, hello, из исходника.

Сначала скачайте tarball программы «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/location.

Вы можете проверить это командой «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/

Видиет? Программа установлена   /usr/local/stow/hello/location.

Точно так же все пакеты будут храниться в своем собственном каталоге.

Здесь идет основная часть. Давайте удалим  программу hello.

Для этого перейдите в каталог /usr/local/stow/:

$ cd /usr/local/stow/

..и выполните следующую команду:

$ sudo stow --delete hello

Программа hello была только что удалена.

Вы можете проверить, действительно ли она удалена, используя команду:

$ hello
-bash: /usr/local/bin/hello: No such file or directory

Обратите внимание, что Stow удалил только символические ссылки.

Все программные файлы и каталоги, связанные с программой hello, по-прежнему доступны в папке / usr / local / stow / hello.

Таким образом, вы можете снова установить программу hello без необходимости загружать исходный файл.

Если вы больше не хотите этого, просто удалите папку.

$ sudo rm -fr /usr/local/stow/hello/

Чтобы узнать больше о Stow, обратитесь к справочным страницам.

$ man stow

 

cryptoparty

Cryptography is typically bypassed, not penetrated.

Простой способ удалить программы, установленные из исходников в Linux: 2 комментария

  • 24.12.2018 в 11:54
    Permalink

    Какое говно ваш Линукс. Пол часа ставить программу в одну папку. В Винде давно уже придумали portable программы. Распаковал и запускай в один клик из любого места. Можешь даже на флешке носить и на любом другом компе запускать.

    Ответ

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

5e7fa976b0640d40