On 2015-09-09, Stanislav Vlasov wrote:

> 9 сентября 2015 г., 18:25 пользователь Oleksandr Gavenko
> <[email protected]> написал:
>
>> Я бы сделал каталог и кинул симлинк туда, есть пользователь и время создания,
>> понятно как удалять/менять.
>
>> /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!

Ответить