Linux update alternatives remove
update-alternatives [опции] —remove name path
update-alternatives [опции] —auto name
update-alternatives [опции] —display name
update-alternatives [опции] —config name
ОПИСАНИЕ
update-alternatives создает, удаляет, обслуживает и отображает информацию о символических ссылках, входящих в подсистему альтернатив для ALT Linux.
Это позволяет нескольким программам, установленным в системе одновременно, выполнять одинаковые или похожие функции. Например, во многих системах одновременно установлено несколько текстовых редакторов. Это дает возможность всем пользователям системы, при желании, пользоваться различными редакторами, но создает при этом сложности для системы при вызове программы редактирования, если пользователь не определил своих предпочтений.
Предназначение подсистемы альтернатив заключается в решении этих задач. Универсальное имя в файловой системе разделено между всеми файлами, предоставляющими взаимозаменяемые функциональные возможности. Система альтернатив и системный администратор вместе определяют, к какому файлу в системе происходит обращение при помощи универсального имени. Например, если в системе одновременно установлены текстовые редакторы ed(1) и vim(1) , то подсистема альтернатив обратится к универсальному имени /usr/bin/editor для вызова /usr/bin/vim по-умолчанию. Системный администратор может изменить параметры так, что вместо этого будет произведен вызов /usr/bin/ed , и подсистема альтернатив не изменит эти установки до тех пор, пока об этом не последует явный запрос.
Универсальное имя — это не прямая символическая ссылка к выбранной альтернативе. Вместо этого создается символическая ссылка в каталоге альтернатив , которая, в свою очередь, ссылается на конкретный файл. Это сделано для того, чтобы изменения, сделанные системным администратором, ограничивались только каталогом /etc : FHS дает основания считать это хорошей идеей.
Если пакет, предоставляющий файл со специфическими функциями, установлен, изменен или удален, вызывается update-alternatives для обновления информации об этом файле, содержащемся в подсистеме альтернатив. Вызов update-alternatives обычно происходит посредством вызова post-install или pre-install скрипта, содержащегося в пакете RPM.
Зачастую бывает полезно синхронизировать изменение нескольких альтернатив, образующих группу; например, если в системе установлено несколько версий редактора vi(1) , то man-страница /usr/share/man/man1/vi.1 должна соответствовать альтернативе, определяемой /usr/bin/vi Подсистема update-alternatives управляет этим посредством главных (master) и подчиненных (slave) ссылок; если изменяется главная ссылка, подчиненные ссылки тоже изменяются. Главная ссылка и ассоциированные с ней подчиненные образуют группу ссылок .
Каждая группа ссылок в любой момент времени может находиться в одном из двух режимов: автоматическом или не автоматическом. Если группа находится в автоматическом режиме, при установке, обновлении и удалении пакетов подсистема альтернатив сама решает, какие из ссылок требуется обновить и как. В не автоматическом режиме подсистема альтернатив не делает изменений ссылок, оставляя их на усмотрение системного администратора.
Каждая группа ссылок при первой установке в систему находится в автоматическом режиме. Если системный администратор вносит изменения в автоматические установки системы, то update-alternatives при очередном запуске обнаружит изменении группы ссылок и автоматически перейдет в не автоматический режим.
Каждая альтернатива имеет ассоциированный с ней приоритет — когда группа ссылок находится в автоматическом режиме, то альтернативами, указанными членами группы, будут те, которые имеют наивысший приоритет.
При использовании опции —config update-alternatives перечислит весь список вариантов в группе ссылок, соответствующий главной ссылке. Вам будет предложено определить, какой из вариантов вы желаете использовать. Если вы однажды сделаете изменения, то группа ссылок больше не будет работать в автоматическом режиме. Для возврата к автоматическому режиму вам необходимо использовать опцию —auto
ТЕРМИНОЛОГИЯ
Поскольку update-alternatives представляет из себя довольно сложный механизм, некоторые термины помогут объяснить его действие: универсальное имя Имя, например, /usr/bin/editor , которое обращается посредством подсистемы альтернатив к одному из нескольких файлов со схожими функциями. символическая ссылка Без каких-либо дополнительных определений это означает ссылку в каталог альтернатив — каталог, который может корректировать системный администратор. альтернатива Имя конкретного файла в файловой системе, который может быть доступен через универсальное имя, используя подсистему альтернатив. каталог альтернатив Каталог, по умолчанию это /etc/alternatives , содержащий символические ссылки. административный каталог Каталог, по умолчанию это /var/lib/rpm/alternatives , содержащий информацию о состоянии подсистемы update-alternatives группа ссылок Набор взаимосвязанных ссылок, подлежащих синхронной модификации. главная ссылка Ссылка в группе ссылок, определяющая конфигурацию остальных ссылок в группе. подчиненная ссылка Ссылка в группе ссылок, контролируемая значением главной ссылки. автоматический режим Когда группа ссылок находится в автоматическом режиме, подсистема альтернатив следит, что бы ссылка в группе указывала на альтернативу, имеющую наивысший приоритет в группе. не автоматический режим Кагда группа ссылок находится в не автоматическом режиме, подсистема альтернатив не делает никаких изменений в установках системного администратора.
ОПЦИИ
При вызове update-alternatives должно быть определено ровно одно действие, которое должно быть выполнено. Любое число параметров может быть указано в комбинации с любым действием.
ПАРАМЕТРЫ
—verbose Выводит подробности о действиях update-alternatives. —quiet Не выводит на экран никаких сообщений о работе, кроме сообщений об ошибках. —test Не предпринимать реальных действий, только показать, что будет сделано. Эта функция еще не реализована. —help Вывести информацию об использовании (и показать версию update-alternatives ). —version Показать версию update-alternatives (и отобразить информацию об использовании). —altdir каталог Определяет каталог альтернатив , отличный от используемого по умолчанию. —admindir каталог Определяет административный каталог , отличный от используемого по умолчанию.
ДЕЙСТВИЯ
—install link gen path pri [ —slave slink sgen spath ] . Добавляет группу альтернатив в систему. gen — универсальное имя для главной ссылки, link — имя этой ссылки, path — альтернатива для главной ссылки. sgen , slink и spat это универсальное имя, ссылка и альтернатива для подчиненной ссылки. Может быть определено любое число действий —slave , и каждое из них — с тремя аргументами. Если указанная главная ссылка уже присутствует в подсистеме альтернатив, то информация будет добавлена как новый набор альтернатив для группы. В противном случае будет добавлена новая группа, установленная в автоматический режим работы. Если группа находится в автоматическом режиме и вновь добавленные альтернативы имеют более высокий приоритет, чем уже существующие в этой группе, то символические ссылки будут обновлены с учетом новых альтернатив. —remove name path Удаляет альтернативы и все ассоциированные с ними подчиненные ссылки. name — это имя в каталоге альтернатив, а path — это абсолютное имя файла, на которое ссылается name на path , то name будет обновлено, для указания на ближайшую альтернативу, или удалено, в случае, если больше не осталось альтернатив. Ассоциированные подчиненные ссылки будут, соответственно, обновлены или удалены. Если ссылка указывает не на path , то ссылка не будет изменена; будет удалена только информация об альтернативе. —auto link Переключает главную ссылку link в автоматический режим. При этом как сама ссылка, так и все ее подчиненные ссылки будут обновлены тиким образом, что будут указывать на альтернативы с наивысшим приоритетом. —display link Отображает информацию о группе ссылок, где link является главной ссылкой. Отображаемая информация содержит режим группы (автоматический или не автоматический), на какую альтернативу в настоящий момент указывает ссылка, какие другие альтернативы доступны (и их соответствующие подчиненные альтернативы), а так же альтернативу, имеющую наивысший приоритет из всех установленных в подсистеме альтернатив.
ФАЙЛЫ
/etc/alternatives/ Каталог альтернатив по умолчанию. Может быть изменен при помощи опции —altdir /var/lib/rpm/alternatives/ Административный каталог по умолчанию. Может быть изменен при помощи опции —admindir
КОДЫ ВОЗВРАТА
0 Требуемое действие было успешно выполнено. 2 Возникли проблемы в синтаксисе командной строки или при выполнении действия.
ДИАГНОСТИКА
update-alternatives , если не было обнаружено ошибок, не сообщает о своих действиях в стандартный вывод. Если же update-alternatives сталкивается с проблемой, то выводится сообщение об ошибке и работа прекращается с кодом возврата 2. Эта диагностика должна быть очевидна; если вы находите, что это не так, пожалуйста, сообщите об этом как об ошибке.
ОШИБКИ
Если вы обнаружите ошибку, пожалуйста, сообщите об этом в систему слежения за ошибками ALT Linux — http://bugs.altlinux.ru/ или, если это невозможно, отправьте сообщение авторам электронной почтой.
Если вы найдете любое расхождение между работой update-alternatives и настоящим руководством, то это ошибка реализации либо документации и перевода; пожалуйста, сообщите об этом.
АВТОРЫ
Ian Jackson - автор Debian update-alternatives. Charles Briscoe-Smith - автор этой документации. Aleksandr Blohin sass@altlinux.ru> - перевод на русский язык. Dmitry V. Levin ldv@alt-linux.org> - адаптация для ALT Linux.
АВТОРСКИЕ ПРАВА
Это свободное программное обеспечение; см. GNU General Public License версии 2 или позже в части, касающейся авторского права. Поставляется БЕЗ предоставления каких либо гарантий.
How to remove ‘update-alternatives’ links on Linux
It should be libRlapack.so instead of libRblapack. The problem is that if issue a correct command line, i.e.
update-alternatives --install /usr/lib64/R/lib/libRlapack.so libRlapack.so /usr/lib64/R/lib/libRlapack_native.so 100
update-alternatives --remove libRblapack.so /usr/lib64/R/lib/libRblapack.so
but it doesn’t work — returns the same error when entering a correct command. How can I get it fixed? Thanks!
2 Answers 2
I would try cleaning it up manually. I’ve never done this so make sure you backup beforehand.
- Remove the link from /etc/alternatives
- Remove the relevant file from the admin directory
- /var/lib/dpkg/alternatives/ on ubuntu (debian may be the same but check the man pages under the FILES section)
- /var/lib/alternatives/ on CentOS 6&7
Removing them manually resulted in . is already managed by . error in my case. Aside from that, the manual removal also didn’t scale, as i’ve had added multiple multiple alternatives for the centralized symlink. It’s just a mess.
When it comes to either update-alternatives or alternatives , they both provide the —remove and —remove-all flags. As for the former flag, it only removes one single alternative of the link group. For example$ update-alternatives --list python3 /usr/bin/python3.8 /usr/bin/python3.9 $ sudo update-alternatives --remove python3 /usr/bin/python3.9 $ update-alternatives --list python3 /usr/bin/python3.8
The form of the —remove flag goes by update-alternatives —remove symlink-generic-name /path/to/one/executable/alternative
However, if you want to outright erase the generic name with all of its associated alternatives all at once, then —remove-all is the way to go.
$ update-alternatives --list python3 /usr/bin/python3.8 /usr/bin/python3.9 $ sudo update-alternatives --remove-all python3 $ update-alternatives --list python3 update-alternatives: error: no alternatives for python3 $ update-alternatives --query python3 update-alternatives: error: no alternatives for python3