Xstow - программа, позволяющая довольно простым способом устанавливать программы вручную, не захламляя систему. Xstow пригодится, если у вас появится необходимость установить программу или версию программы, которой нет в репозиториях вашего дистрибутива.
Представим ситуацию: Вы используете дистрибутив Linux и вам нужно установить программу foobar, хотя ее нет в репозиториях вашего дистрибутива. Вы можете скачать архив с исходными кодами программы и скомпилировать ее вручную. Но как быть с захламлением системы бесхозными файлами? На самом деле, путей для решения проблемы много. Xstow предлагает свой вариант: вы качаете архив с исходниками, собираете и устанавливаете программу, как обычно, но за одним исключением - программа устанавливается с префиксом /usr/local/stow/имяпрограммы-версия. После этого вы переходите в каталог /usr/local/stow и от пользователя root запускаете программу xstow, указав ей в качестве параметра "имяпрограммы-версия". Xstow создает необходимые символические ссылки в каталоге /usr/local/, в результате вы сможете запускать и использовать программу так, как если бы она была установлена обычным способом. Если программу надо будет удалить, вы заходите в каталог /usr/local/stow и выполняете команду xstow -D "имяпрограммы-версия". После этого можно просто удалить каталог /usr/local/stow/имяпрограммы-версия и в вашей системе не останется бесхозных файлов.
Xstow не претендует на лучшее решение, однако, может облегчить жизнь в некоторых случаях. Установка каждой программы в отдельный каталог и создание символических ссылок - не самое красивое решение, если вы решите ставить вручную большинство программ. Но в том случае, когда надо установить несколько программ, xstow будет хорошим вариантом.
Опишу принцип работы xstow на примере.
Представим, что в портежах Gentoo нету программы vifm. Я скачал архив с сайта программы, распаковал и перешел в каталог с исходниками. Каталог /usr/local пуст.
% ./configure --prefix=/usr/local/stow/vifm-0.6.3 % make # make install
Теперь программа установлена в вышеуказанный каталог. Запустить программу я могу, указав полный путь до бинарника. Чтобы не вводить каждый раз полный путь, я могу добавить этот каталог в переменную $PATH. Но если программ будет много, переменная $PATH сильно разрастется. К тому же, мне, возможно, нужно будет добавить строку в /etc/ld.so.conf. Xstow может немного упростить мне жизнь:
% cd /usr/local/stow # xstow vifm-0.6.3
В качестве параметра я указал "vifm-0.6.3". Фактически это лишь имя каталога и ничего более. Теперь xstow создал все необходимые символические ссылки в каталоге /usr/local:
# ls -l /usr/local total 4 lrwxrwxrwx 1 root root 19 Sep 20 00:03 bin -> stow/vifm-0.6.3/bin lrwxrwxrwx 1 root root 21 Sep 20 00:03 share -> stow/vifm-0.6.3/share drwxr-xr-x 3 root root 4096 Sep 19 23:58 stow
Вуаля! Теперь я могу запустить vifm без ввода полного пути до файла, что подтверждается следующей командой:
# whereis vifm vifm: /usr/local/bin/vifm
Немного усложним ситуацию. К примеру, мне понадобилось установить две различных версии программы vifm. У меня уже установлена версия 0.6.3, я скачал версию 0.6.2. Стандартная процедура:
% ./configure --prefix=/usr/local/stow/vifm-0.6.3 % make # make install
Теперь перед созданием символических ссылок для версии 0.6.2, мне сперва надо удалить оные для версии 0.6.3, иначе будет ошибка:
% cd /usr/local/stow # xstow -D vifm-0.6.3 # xstow vifm-0.6.2 % ls -l ../ total 4 lrwxrwxrwx 1 root root 19 Sep 20 00:12 bin -> stow/vifm-0.6.2/bin lrwxrwxrwx 1 root root 21 Sep 20 00:12 share -> stow/vifm-0.6.2/share drwxr-xr-x 4 root root 4096 Sep 20 00:09 stow
Хотя сами файлы vifm-0.6.3 так и остались лежать на своем месте (в каталоге /usr/local/stow/vifm-0.6.3), но символические ссылки из директории /usr/local/ были удалены. По желанию я могу удалить каталог /usr/local/stow/vifm-0.6.3, а могу оставить его для возможности переключаться между разными версиями этой программы.
Автор: Sergey Minaev