The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Возрождение системы управления пакетами GNU Stow

06.12.2011 11:04

Спустя девять лет с момента прошлого выпуска анонсирован релиз системы управления пакетами GNU Stow 2.1.0. Код Stow написан на языке Perl и распространяется в рамках лицензии GPLv2. Ключевым отличием новой версии является полное обновление кодовой базы и реализация более жестких механизмов для предотвращения конфликтов.

В Stow используется простой и не похожий на обычные пакетные менеджеры подход к размещению пакетов: все связанные с программой компоненты устанавливаются штатными средствами в отдельной поддиректории в каталоге /usr/local/stow (например, /usr/local/stow/emacs). Задача Stow при этом сводится к расстановке символических ссылок в иерархии системных каталогов /usr/local и выполнению контроля за их целостностью. При удалении пакета производится удаление всех связанных символических ссылок. Внутри директории /usr/local/stow файлы установленных программ всегда остаются неизменными, Stow оперирует только символическими ссылками.

Ключевыми недостатком Stow, который мешал использованию Stow в современных дистрибутивах, является отсутствие каких-либо средств для контроля зависимостей и оценки конфликтов между пакетами. В версии Stow 2.1.0 этот недостаток частично преодолён за счёт добавления улучшенных средств для разрешения конфликтов. В новой версии выполнение операций откладывается до завершения оценки всех потенциальных конфликтов. Вначале производится анализ установочных образов и создание плана действий, которые необходимо выполнить для установки. Если в процессе анализа выявлены конфликты с уже установленными программами, то процесс инсталляции блокируется до устранения проблем (ранее анализ конфликтов производился по мере установки и если конфликт обнаруживался, то пользователь сталкивался с частично установленным пакетом). Разделение фаз анализа и установки также позволило минимизировать время модификации системных каталогов во время обновления пакета (меняются только изменившиеся символические ссылки, без их пересоздания).

Другим интересным новшеством стало добавление механизма для управления программами и файлами конфигурации (~/.bashrc, ~/.zshrc и т.п.) в домашней директории пользователя. Для обеспечения данной возможности создан специальный плагин для утилиты mr, предназначенной для осуществления операций с набором репозиториев (subversion, git, mercurial, bzr и т.п.).

Из других изменений, представленных в Stow 2.1.0 можно отметить:

  • Проведён значительный рефакторинг кода, разделение кода на два Perl-модуля Stow и Stow::Util;
  • Добавлена поддержка списков игнорирования;
  • Добавлена поддержка установки и распространения Stow в стиле CPAN с использованием модуля Module::Build;
  • Создан тестовый набор и функция тестирования работоспособности Stow перед установкой - "make test";
  • Удалена поддержка опции '--conflicts', информация о конфликтах теперь выводится всегда;
  • При выполнении операций сворачивания и разворачивания (folding/unfolding) может совместно использоваться несколько stow-директорий;
  • Унифицированы и более информативны сообщения о конфликтах и отладочные данные;
  • Используемые по умолчанию опции командной строки могут быть определены через файлы конфигурации '.stowrc' и '~/.stowrc';
  • Возможность определения нескольких действий в рамках одного вызова Stow (например, для обновления ранее установленного пакета emacs-21.3 нужно выполнить: "stow -D emacs-21.3 -S emacs-21.4a", что приведёт к замене emacs-21.3 на emacs-21.4a);
  • Новые опции (при перечислении в командной строке могут указываться несколько раз): "--ignore=regex", "--defer=regex", "--override=regex". Например, "--defer='man' --defer='info'" или "--override='man|info'" указывает на то, что пересечение документации не будет рассматриваться как конфликт;
  • Возможность создавать дополнительные stow-директории для типового контента, например, perl-модули размещаются в "/usr/local/stow/perl-5.8.8-extras", а не в общей директории "/usr/local/stow";
  • Увеличена скорость проверки некорректных симлинков во время выполнения операции удаления пакетов за счет организации поверхностного поиска без глубокого уровня вложенности;
  • Добавлена утилита chkstow для проверки целостности заданной директории.


  1. Главная ссылка к новости (http://lists.gnu.org/archive/h...)
  2. Управление программными пакетами при помощи Stow
  3. Официальная документация Stow
  4. OpenNews: Проблемы организации иерархии файловой системы в Linux
  5. OpenNews: Первый стабильный релиз децентрализованной системы установки приложений Zero Install
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32476-stow
Ключевые слова: stow, packet
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (6) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Kodirr (?), 12:32, 06/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Другими словами, переизобретение Gobo-linux в отдельно взятом каталоге /usr/local/stow :)
     
     
  • 2.3, Аноним (-), 13:00, 06/12/2011 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > 005 - 2003: first public release published online. (http://en.wikipedia.org/wiki/GoboLinux#Releases)

    2011 - 2003 == 8. С первого публичного релиза GoboLinux прошло восемь лет.
    > Спустя девять лет с момента прошлого выпуска анонсирован релиз системы управления пакетами GNU Stow 2.1.0.

    9>8. Приэтом обратите внимание на то, что номер текущей версии 2.1.0. Я сильно сомневаюсь, что отсчет начинался сразу с версии 2.0.0 — стало быть, GNU Stow существует уже более девяти лет. Так что если кто-то тут что-то и переизобретает, то это GoboLinux)

     
  • 2.15, nmorozov (ok), 15:39, 06/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Изначально такой подход, куча симлинков везде а все лежит в одном каталоге это называлось SCO Open Server :)
     

  • 1.4, Аноним (-), 13:01, 06/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какое любопытное название, так и хочется расшифровать его как Stallman Wrapper.
     
     
  • 2.19, Lain_13 (?), 22:22, 06/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оно буквально переводится без всякой расшифровки.
    http://www.multitran.ru/c/m.exe?l1=1&l2=2&s=stow
     

  • 1.22, Анон1 (?), 12:08, 27/03/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Ключевыми недостатком Stow, который мешал использованию Stow...

    машинный перевод, скпздц

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру