Re: Временно заменить утилиту из пакетов утилитой из /opt
On 2015-09-09, Stanislav Vlasov wrote:
> 9 сентября 2015 г., 18:25 пользователь Oleksandr Gavenko
> <gavenkoa@gmail.com> написал:
>
>> Я бы сделал каталог и кинул симлинк туда, есть пользователь и время создания,
>> понятно как удалять/менять.
>
>> /usr/local/bin уже есть в PATH перед /usr/bin - бросать симлинк туда?
>
> Можно и так. Или, если это требуется для одного пользователя -
> положить в ~/bin, если он идёт раньше других путей.
Поискав нарыл популярный путь ``~/bin``:
$ cat /etc/skel/.profile
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Я настроил свой ~/.bashrc на ~/usr/bin что бы не смешивались dot-файлы с make install:
--prefix=~/usr
DIST=${HOME}/usr
> На своей машине при невозможности сделать по-другому я бы
> воспользовался dpkg-divert на предмет переименования старого adb (чтоб
> при апгрейде тоже переименовывался) и создания симлинка на нужный.
>
>> Интересует рассовая верность решения.
>
> Расово верное решение - сделать пакет с нужной версией.
>
Способ с ~/bin легко посоветовать коллеге - он не требует новых знаний.
Про dpkg-divert наверно и хотелось услышать, о таком механизме не знал.
Поиск ``site:blogspot.com dpkg-divert`` показал что люди используют для:
* смены приоритета как
$ dpkg-divert --divert /etc/grub.d/08_linux_xen --rename /etc/grub.d/20_linux_xen
* удаление чужых ожиданый, как
# dpkg-divert --local --rename --add /sbin/initctl
# ln -s /bin/true /sbin/initctl
* отключение
$ sudo dpkg-divert --rename --divert /etc/acpi/sleep.sh.disabled /etc/acpi/sleep.sh
* раньше ``ask-grep`` так и назывался пока не удалили пакет ``ack``, это исправлялось
$ sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep
Т.е. сейчас мне кажется что dpkg-divert не стоит использовать по исследуемому
вопросу...
>> update-alternatives кажись не то для того?
>
> Только если системный adb - симлинк, указывающий на симлинк в /etc/alternatives
Так и было когда пробовал:
$ sudo update-alternatives --install /usr/bin/adb adb /opt/android-sdk-linux/platform-tools/adb 4
update-alternatives: using /opt/android-sdk-linux/platform-tools/adb to provide /usr/bin/adb (adb) in auto mode
update-alternatives: warning: not replacing /usr/bin/adb with a link
Я прихожу к выводу что для механизма alternatives поддержка в пакете должна
включаться сразу, т.е. называтся файл с префиксом/суффиксом и устанавливать
как альтернативу.
--
Best regards!
Reply to: