alternatives
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
alternatives
alternatives - это мощная система управления версиями установленного ПО.
Она уже упоминалась (и даже вкратце описана) в теме редкие полезные команды.
Но это настолько интересно, что заслуживает отдельного изучения.
Она уже упоминалась (и даже вкратце описана) в теме редкие полезные команды.
Но это настолько интересно, что заслуживает отдельного изучения.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
alternatives
Olej писал(а):Но это настолько интересно, что заслуживает отдельного изучения.
Код: Выделить всё
olej@nvidia ~ $ lsb_release -ircd
Distributor ID: LinuxMint
Description: Linux Mint 17.1 Rebecca
Release: 17.1
Codename: rebecca
Код: Выделить всё
olej@nvidia ~ $ which alternatives
olej@nvidia ~ $ apt search alternatives*
p galternatives - инструмент настройки системы альтернатив с
p jquery-alternative-doc - Альтернативная документация для jQuery
p kalternatives - графический интерфейс к системе альтернати
Зато замечательно существует каталог:
Код: Выделить всё
olej@nvidia ~ $ ls /etc/alternatives
aclocal fakeroot.es.1.gz javadoc lzma spice-xpi-client
aclocal.1.gz fakeroot.fr.1.gz javadoc.1.gz lzma.1.gz ssh-askpass
animate fakeroot.sv.1.gz javah lzmore ssh-askpass.1.gz
animate.1.gz fonts-japanese-gothic.ttf javah.1.gz lzmore.1.gz start-here-16.png
appletviewer from javap mogrify start-here-22.png
appletviewer.1.gz from.1.gz javap.1.gz mogrify.1.gz start-here-24.png
aptitude ftp javaws montage start-here-32.png
aptitude.8.gz ftp.1.gz javaws.1.gz montage.1.gz start-here.svg
aptitude.cs.8.gz gconftool jcmd mozilla-flashplugin stream
aptitude.de.8.gz gconftool.1.gz jcmd.1.gz mozilla-javaplugin.so stream.1.gz
aptitude.es.8.gz ghostscript-current jconsole mt tdbbackup
aptitude.fi.8.gz glamor_conf jconsole.1.gz mt.1.gz tdbbackup.8.gz
aptitude.fr.8.gz global-assembly-cache-tool jdb native2ascii telnet
aptitude.gl.8.gz gnome-text-editor jdb.1.gz native2ascii.1.gz telnet.1.gz
aptitude.it.8.gz gnome-text-editor.1.gz jexec nawk text.plymouth
aptitude.ja.8.gz gnome-www-browser jexec-binfmt nawk.1.gz tnameserv
aptitude.pl.8.gz go jhat nc tnameserv.1.gz
automake google-chrome jhat.1.gz nc.1.gz traceroute
automake.1.gz gstreamer-codec-install jinfo netcat traceroute.1.gz
awk guile jinfo.1.gz netcat.1.gz traceroute6
awk.1.gz guile.1.gz jmap newt-palette traceroute6.8.gz
builtins.7.gz haskell-compiler jmap.1.gz orbd unlzma
c++ haskell-compiler.1.gz jps orbd.1.gz unlzma.1.gz
c++.1.gz i386-linux-gnu_egl_conf jps.1.gz pack200 unpack200
c89 i386-linux-gnu_gl_conf jrunscript pack200.1.gz unpack200.1.gz
c89.1.gz i386-linux-gnu_grub_fb_blacklist jrunscript.1.gz pager unrar
c99 i386-linux-gnu_libvdpau_nvidia.so jsadebugd pager.1.gz unrar.1.gz
c99.1.gz i386-linux-gnu_libvdpau_nvidia.so.1 jsadebugd.1.gz php updatedb
cc i386-linux-gnu_man_nvidiaxconfig.gz jstack php.1.gz vi
cc.1.gz i386-linux-gnu_man_persistenced.gz jstack.1.gz pico vi.1.gz
cli i386-linux-gnu_nvidia_app_profile jstat pico.1.gz view
cli.1.gz i386-linux-gnu_nvidia_app_profile_keys jstat.1.gz policytool view.1.gz
cli-gacutil.1.gz i386-linux-gnu_nvidia_bug_report jstatd policytool.1.gz vi.fr.1.gz
compare i386-linux-gnu_nvidia-cuda-mps-control jstatd.1.gz rcp vi.it.1.gz
compare.1.gz i386-linux-gnu_nvidia-cuda-mps-control.1.gz kdesu rcp.1.gz vi.ja.1.gz
composite i386-linux-gnu_nvidia-cuda-mps-server keytool README vi.pl.1.gz
composite.1.gz i386-linux-gnu_nvidia-debugdump keytool.1.gz rename vi.ru.1.gz
conjure i386-linux-gnu_nvidia_drv libblas.so.3 rename.1.gz vivaldi
conjure.1.gz i386-linux-gnu_nvidia_modconf libblas.so.3gf rlogin vtrgb
convert i386-linux-gnu_nvidia_persistenced libgksu-gconf-defaults rlogin.1.gz w
convert.1.gz i386-linux-gnu_nvidia_smi liblapack.so.3 rmic w.1.gz
cpp i386-linux-gnu_nvidia-smi.1.gz liblapack.so.3gf rmic.1.gz write
default.plymouth i386-linux-gnu_nvidia_xconfig locate rmid write.1.gz
display i386-linux-gnu_xorg_extra_modules locate.1.gz rmid.1.gz wsgen
display.1.gz identify lua-compiler rmiregistry wsgen.1.gz
editor identify.1.gz lua-compiler-manual rmiregistry.1.gz wsimport
editor.1.gz idlj lua-interpreter rmt wsimport.1.gz
ex idlj.1.gz lua-manual rmt.8.gz wx-config
ex.1.gz import lzcat rsh x86_64-linux-gnu_gl_conf
ex.fr.1.gz import.1.gz lzcat.1.gz rsh.1.gz x-cursor-theme
ex.it.1.gz infobrowser lzcmp runhaskell xjc
ex.ja.1.gz infobrowser.1.gz lzcmp.1.gz runhaskell.1.gz xjc.1.gz
ex.pl.1.gz itweb-settings lzdiff rview x-session-manager
ex.ru.1.gz itweb-settings.1.gz lzdiff.1.gz rzsh x-terminal-emulator
extcheck jar lzegrep sar x-terminal-emulator.1.gz
extcheck.1.gz jar.1.gz lzegrep.1.gz sar.1.gz x-window-manager
faked.1.gz jarsigner lzfgrep schemagen x-window-manager.1.gz
faked.es.1.gz jarsigner.1.gz lzfgrep.1.gz schemagen.1.gz x-www-browser
faked.fr.1.gz java lzgrep serialver zsh
faked.sv.1.gz java.1.gz lzgrep.1.gz serialver.1.gz zsh-usrbin
fakeroot javac lzless servertool
fakeroot.1.gz javac.1.gz lzless.1.gz servertool.1.gz
Please read the update-alternatives(8) man page for information on this directory and its contents.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Olej писал(а): И в нём README файл:Please read the update-alternatives(8) man page for information on this directory and its contents.
Код: Выделить всё
olej@nvidia ~ $ update-alternatives --help
Использование: update-alternatives [<параметр> …] <команда>
Команды:
--install <ссылка> <имя> <путь> <приоритет>
[--slave <ссылка> <имя> <путь>] …
добавить группу альтернатив в систему
--remove <имя> <путь> удалить <путь> из группы альтернатив с <именем>
--remove-all <имя> удалить группу альтернатив с именем <имя> из системы
--auto <имя> переключить главную ссылку <имя> в автоматический
режим
--display <имя> показать информацию о группе <имя>
--query <имя> разбираемая машиной версия --display <имя>.
--list <имя> показать все назначения группы <имя>
--config <имя> показать альтернативы для группы <имя> и попросить
пользователя выбрать одно из значений
--set <имя> <путь> настроить <путь> как альтернативу <имени>
--all вызвать --config для всех альтернатив
<ссылка> — символьная ссылка, указывающая на /etc/alternatives/<имя>
(например, /usr/bin/pager).
<имя> — главное имя в этой группе ссылок
(например, pager).
<путь> — расположение одного альтернативного файла назначения
(например, /usr/bin/less).
<приоритет> — целое; чем больше значение, тем больше приоритет в
автоматическом режиме.
Параметры:
--altdir <каталог> использовать альтернативный каталог
--admindir <каталог> изменить административный каталог
--log <файл> сменить файл протокола
--force разрешить замену файлов альтернативными
ссылками
--skip-auto не предлагать альтернативы, если они правильно
настроены в автоматическом режиме
(уместно только для --config)
--verbose подробности при работе, больше сообщений
--quiet минимальный вывод на экран при работе
--help показать это сообщение
--version показать номер версии
Код: Выделить всё
olej@nvidia ~ $ update-alternatives --list awk
/usr/bin/gawk
/usr/bin/mawk
Код: Выделить всё
olej@nvidia ~ $ update-alternatives --display awk
awk - автоматический режим
ссылка сейчас указывает на /usr/bin/gawk
/usr/bin/gawk — приоритет 10
подчинённый awk.1.gz: /usr/share/man/man1/gawk.1.gz
подчинённый nawk: /usr/bin/gawk
подчинённый nawk.1.gz: /usr/share/man/man1/gawk.1.gz
/usr/bin/mawk — приоритет 5
подчинённый awk.1.gz: /usr/share/man/man1/mawk.1.gz
подчинённый nawk: /usr/bin/mawk
подчинённый nawk.1.gz: /usr/share/man/man1/mawk.1.gz
Текущая «лучшая» версия: «/usr/bin/gawk».
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Olej писал(а):Начиная с того, что в Mint 17, например, вообще нет такой команды:Код: Выделить всё
olej@nvidia ~ $ lsb_release -ircd Distributor ID: LinuxMint Description: Linux Mint 17.1 Rebecca Release: 17.1 Codename: rebecca
Код: Выделить всё
olej@nvidia ~ $ update-alternatives
update-alternatives: требуется --display, --query, --list, --get-selections, --config, --set, --set-selections, --install, --remove, --all, --remove-all или --auto
Для получения информации по использованию программы используйте «update-alternatives --help».
Код: Выделить всё
[olej@dell ~]$ lsb_release -ircd
Distributor ID: Fedora
Description: Fedora release 23 (Twenty Three)
Release: 23
Codename: TwentyThree
Код: Выделить всё
[olej@dell ~]$ alternatives
alternatives, версия 1.7, (C) 2001 Red Hat, Inc.
Может свободно распространяться в рамках GNU Public License.
формат: alternatives --install <ссылка> <имя> <путь> <приоритет>
[--initscript <служба>]
[--family <family>]
[--slave <ссылка> <имя> <путь>]*
alternatives --remove <имя> <путь>
alternatives --auto <имя>
alternatives --config <имя>
alternatives --display <имя>
alternatives --set <имя> <путь>
alternatives --list
общие параметры: --verbose --test --help --usage --version
--altdir <каталог> --admindir <каталог>
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Alternatives
Alternatives — механизм выбора предпочтительного ПО среди нескольких вариантов в некоторых дистрибутивах Linux.
Впервые появился в Debian, откуда попал в дистрибутивы производные от debian (такие, как ubuntu). Так же был перенесён в Red Hat Linux, откуда попал во многие RPM-based дистрибутивы.
...
Изначально для этого использовались создаваемые вручную символические ссылки (например, /usr/bin/sendmail делался симлинком на соответствующую программу из пакета программ почтового сервера (такого, как Exim, Postfix и т. д.).
В дальнейшем этот метод был расширен на многие применения и был стандартизирован.
update-alternatives написан Яном Джексоном (Ian Jackson) в 1995 и входит в состав пакета dpkg (менеджера пакетов Debian) и является его неотъемлемой частью.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Olej писал(а): Но это по смыслу очень близко к тому, что в Fedora:
Код: Выделить всё
olej@nvidia ~/2017_WORK $ update-alternatives --help
Использование: update-alternatives [<параметр> …] <команда>
Команды:
--install <ссылка> <имя> <путь> <приоритет>
[--slave <ссылка> <имя> <путь>] …
добавить группу альтернатив в систему
--remove <имя> <путь> удалить <путь> из группы альтернатив с <именем>
--remove-all <имя> удалить группу альтернатив с именем <имя> из системы
--auto <имя> переключить главную ссылку <имя> в автоматический
режим
--display <имя> показать информацию о группе <имя>
--query <имя> разбираемая машиной версия --display <имя>.
--list <имя> показать все назначения группы <имя>
--config <имя> показать альтернативы для группы <имя> и попросить
пользователя выбрать одно из значений
--set <имя> <путь> настроить <путь> как альтернативу <имени>
--all вызвать --config для всех альтернатив
<ссылка> — символьная ссылка, указывающая на /etc/alternatives/<имя>
(например, /usr/bin/pager).
<имя> — главное имя в этой группе ссылок
(например, pager).
<путь> — расположение одного альтернативного файла назначения
(например, /usr/bin/less).
<приоритет> — целое; чем больше значение, тем больше приоритет в
автоматическом режиме.
Параметры:
--altdir <каталог> использовать альтернативный каталог
--admindir <каталог> изменить административный каталог
--log <файл> сменить файл протокола
--force разрешить замену файлов альтернативными
ссылками
--skip-auto не предлагать альтернативы, если они правильно
настроены в автоматическом режиме
(уместно только для --config)
--verbose подробности при работе, больше сообщений
--quiet минимальный вывод на экран при работе
--help показать это сообщение
--version показать номер версии
Код: Выделить всё
olej@nvidia ~/2017_WORK $ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description: Linux Mint 18.1 Serena
Release: 18.1
Codename: serena
Код: Выделить всё
olej@nvidia ~/2017_WORK $ update-alternatives --version
Debian update-alternatives, версия 1.18.4.
Это свободное программное обеспечение. См. условия распространения в
Универсальной общественной лицензии GNU версии 2 или более поздней.
НИКАКИЕ гарантии не предоставляются.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Но вернулся я к теме (столь важной!) alternatives, что подсказали GUI клиента для управления альтернативами:
У меня при запуске он выбрасывает окно запроса пароля администрирования ... причём с окно с такой силой модальности , что пока оно открыто - не даёт переключиться ни на другое окон, ни на другой рабочий стол... (это задумка такая, фича? - потому как администрирование критической важности ... или это показатель сырости и новизны разработки?).
Как видно по картинке, он всё позволяет менять влёт!
Код: Выделить всё
olej@nvidia ~/2017_WORK $ apt list galternatives
Вывод списка… Готово
galternatives/xenial,xenial 0.13.5+nmu4 all
Код: Выделить всё
olej@nvidia ~/2017_WORK $ apt install galternatives
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
galternatives
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 24,2 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 159 kB.
Пол:1 http://archive.ubuntu.com/ubuntu xenial/universe amd64 galternatives all 0.13.5+nmu4 [24,2 kB]
Получено 24,2 kБ за 0с (76,3 kБ/c)
Выбор ранее не выбранного пакета galternatives.
(Чтение базы данных … на данный момент установлено 268506 файлов и каталогов.)
Подготовка к распаковке …/galternatives_0.13.5+nmu4_all.deb …
Распаковывается galternatives (0.13.5+nmu4) …
Обрабатываются триггеры для man-db (2.7.5-1) …
Обрабатываются триггеры для desktop-file-utils (0.22-1ubuntu5.1) …
Обрабатываются триггеры для gnome-menus (3.13.3-6ubuntu3.1) …
Обрабатываются триггеры для mime-support (3.59ubuntu1) …
Настраивается пакет galternatives (0.13.5+nmu4) …
Как видно по картинке, он всё позволяет менять влёт!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Это настолько мощная техника управления версиями установленного ПО (и достаточно новая и плохо описанная), что разбросанные по форуму ссылки нужно бы собрать воедино:Olej писал(а):alternatives - это мощная система управления версиями установленного ПО.
Она уже упоминалась (и даже вкратце описана) в теме редкие полезные команды.
Но это настолько интересно, что заслуживает отдельного изучения.
редкие полезные команды - общие сведения + конкретно переключение мажду JDK от Sun/Oracle и OpenJDK;
Инструменты Go (здесь и далее) - о том, как вручную управлять версиями установленного у себя ПО, в частности, как переключаться между реализациями языка Go от проекта Golang и от проекта GCC Go.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
alternatives
То же самое, но в Fedora 25:Olej писал(а):Но вернулся я к теме (столь важной!) alternatives, что подсказали GUI клиента для управления альтернативами:
Код: Выделить всё
[olej@xenix etc]$ cat /etc/system-release
Fedora release 25 (Twenty Five)
[olej@xenix etc]$ dnf list '*alternatives*'
Последняя проверка окончания срока действия метаданных: 6 days, 22:01:14 назад, Fri May 5 19:28:58 2017.
Доступные пакеты
galternatives.noarch 0.13.4-21.fc25 fedora
[olej@xenix etc]$ sudo dnf install galternatives
Последняя проверка окончания срока действия метаданных: 2:15:19 назад, Fri May 12 15:15:19 2017.
Зависимости разрешены.
============================================================================================================================================================
Package Архитектура Версия Репозиторий Размер
============================================================================================================================================================
Установка:
galternatives noarch 0.13.4-21.fc25 fedora 43 k
pygtk2-libglade x86_64 2.24.0-15.fc25 fedora 30 k
Результат операции
============================================================================================================================================================
Установка 2 Пакеты
Объем загрузки: 73 k
Объем изменений: 147 k
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/2): galternatives-0.13.4-21.fc25.noarch.rpm 72 kB/s | 43 kB 00:00
(2/2): pygtk2-libglade-2.24.0-15.fc25.x86_64.rpm 51 kB/s | 30 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер 38 kB/s | 73 kB 00:01
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
Установка : pygtk2-libglade-2.24.0-15.fc25.x86_64 1/2
Установка : galternatives-0.13.4-21.fc25.noarch 2/2
Проверка : galternatives-0.13.4-21.fc25.noarch 1/2
Проверка : pygtk2-libglade-2.24.0-15.fc25.x86_64 2/2
Установлено:
galternatives.noarch 0.13.4-21.fc25 pygtk2-libglade.x86_64 2.24.0-15.fc25
Выполнено!
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: alternatives
Снова:Olej писал(а):Но вернулся я к теме (столь важной!) alternatives, что подсказали GUI клиента для управления альтернативами:
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/dlib/dist$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux buster/sid
Release: testing
Codename: buster
Код: Выделить всё
olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/dlib/dist$ apt list galternatives
Вывод списка… Готово
galternatives/testing 1.0.2 all
olej@ACER:~/2019_WORK/own.WORK/AplitSoft/FaceDL/dlib/dist$ aptitude search galternatives
p galternatives - инструмент настройки системы альтернатив с графическим интерфейсом
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей