[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: