/ Soft-обзор / / Xstow /

Xstow

Дата публикации: Sept. 19, 2011
Теги: администрирование,
Автор:

Название: Xstow
Логотип: Tux Linux
Xstow - 1.0.0
Тип: администрирование
Тип интерфейса: CUI
Разработчик: Martin Oberzalek
Версия: 1.0.0
от: July 22, 2010
Лицензия: GPL
Размер архива: 153K
Сайт: http://xstow.sourceforge.net/

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, а могу оставить его для возможности переключаться между разными версиями этой программы.





Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(5)

# Anonymous Sept. 25, 2011, 6:55 p.m.
/usr/local вообще-то и предназначается как раз для пакетов, устанавливаемых в обход пакетного менеджера. Зачем что-то еще городить?

# Brainsburn Sept. 26, 2011, 2:34 a.m.
При обычной установке программы в /usr/local/ его может быть затруднительно удалить, если в этом каталоге уже много других пакетов. С помощью xstow можно устанавливать программы в каталоги типа /usr/local/stow/programname/ , которые можно будет в будущем легко удалить.

# StasLem Sept. 27, 2011, 1:56 a.m.
А что в $HOME ни кто не собирает.
Делаем $HOME/local (добавляем в $PATH $HOME/local/bin и $HOME/local/sbin). Туда и ставим все что хотим, а потом если надо и пакет можно сделать или ebuild или PKGBUILD.

# Гость Sept. 27, 2011, 10:03 a.m.
Сказано же, что “xstow не претендует на лучшее решение”. Это всего-лишь один из способов, успокойтесь :)

# Кость Sept. 14, 2012, 4:41 p.m.
Нет! Stow очень хорошее решение.
Во первых, все программы хранятся в контейнере stow, а не просто в /usr/local. Это упрощает удаление и смешивание.
Во вторых, все линки stow создает сам.
В третьих, он же сам все и убирает.

По мне, так он великолепен!

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

Brainsburn_: “Написание в 1-й” подразумевает “в первой”, а не в... >>>
ZZZ: “Написание в 1-й” подразумевает &ldquo... >>>
SBOdin: Спасибо за полезное руководство... >>>
fanyit: Спасибо за обзор. очень полезно и доступно.... >>>
cheech: Спасибо, статья полезная )... >>>