Re: Временно заменить утилиту из пакетов утилитой из /opt
Oleksandr Gavenko -> debian-russian@lists.debian.org @ Wed, 09 Sep 2015 20:56:18 +0300:
>>> Я бы сделал каталог и кинул симлинк туда, есть пользователь и время создания,
>>> понятно как удалять/менять.
>>
>>> /usr/local/bin уже есть в PATH перед /usr/bin - бросать симлинк туда?
>>
>> Можно и так. Или, если это требуется для одного пользователя -
>> положить в ~/bin, если он идёт раньше других путей.
OG> Поискав нарыл популярный путь ``~/bin``:
Сейчас, кстати, многие инструменты для установки "для юзера" уже
придерживаются соглашения про ~/.local/bin.
>> На своей машине при невозможности сделать по-другому я бы
>> воспользовался dpkg-divert на предмет переименования старого adb (чтоб
>> при апгрейде тоже переименовывался) и создания симлинка на нужный.
>>
>>> Интересует рассовая верность решения.
>>
>> Расово верное решение - сделать пакет с нужной версией.
>>
OG> Способ с ~/bin легко посоветовать коллеге - он не требует новых знаний.
OG> Про dpkg-divert наверно и хотелось услышать, о таком механизме не знал.
OG> Поиск ``site:blogspot.com dpkg-divert`` показал что люди используют для:
OG> * смены приоритета как
OG> $ dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
OG> * удаление чужых ожиданый, как
OG> # dpkg-divert --local --rename --add /sbin/initctl
OG> # ln -s /bin/true /sbin/initctl
OG> * отключение
OG> $ sudo dpkg-divert --rename --divert /etc/acpi/sleep.sh.disabled /etc/acpi/sleep.sh
OG> * раньше ``ask-grep`` так и назывался пока не удалили пакет ``ack``, это исправлялось
OG> $ sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep
OG> Т.е. сейчас мне кажется что dpkg-divert не стоит использовать по исследуемому
OG> вопросу...
dpkg-divert используется тогда, когда нужно завести ad-hoc альтернативу
(т.е. когда автор оригинального пакета не подумал, что тут вот может
понадобиться альтернатива). Достаточно часто как раз для описанной
ситуации, поскольку механизм альтернатив вообще-то придуман не для чего
попало, а для сожительства в одной системе нескольких пакетов,
предоставляющих одну функциональность, когда один из них рассматривается
как основной в этом качестве, но остальные тоже работают.
В смысле, если пакет с данной функциоальностью в дистрибутиве один, то
механизм альтернатив к нему прикручивать не следует.
А когда хочется заменить файл из пакета, но так, чтобы пакетный менеджер
не обижался - divert.
Впрочем, в описываемой ситуации логичнее играться с PATH.
Reply to: