Чи є спосіб перелічити всі настроювані `альтернативи` (символьні посилання на подібні команди) у системі?


24

alternativesКоманда (пакет chkconfig) на RHEL / Fedora управляє симлінк , які пов'язують родове назва однієї з альтернативних реалізацій. Наприклад, mtaгрупа символьних посилань може бути надана Sendmail та Postfix (для реалізації тобто sendmailкоманди):

alternatives --display mta

Хоча я можу --displayгрупу символьних посилань, мені потрібно спочатку вгадати її назву (тобто mta).

Чи можу я просто перерахувати всі можливі налаштовані групи символьних посилань (наприклад mta), з яких можна вибрати?

Причина в тому, що я іноді забуваю деякі назви груп.

Відповіді:


25

На Debian (але не Fedora чи RHEL), щоб побачити список усіх "головних альтернативних імен":

update-alternatives --get-selections

--get-selections перелічити основні альтернативні імена та їх статус.

І для кожного з перерахованих можна запустити --list $ALTERNATIVE_NAME, напр

update-alternatives --list editor

--list name Показати всі цілі групи посилань.

Якщо ви хочете побачити список усіх альтернатив у відповідних групах, можете виконати наступне в fishоболонці:

for alternative in (update-alternatives --get-selections)
    echo $alternative 
    update-alternatives --list (echo $alternative | cut -d" " -f1)
    echo
end | pager

Синтаксис (ba | z)? Sh має бути чимось подібним.

Щоб змінити альтернативи, запустіть sudo update-alternatives --config $ALTERNATIVE_NAME


1
На моєму Fedora 12 update-alternativesє символічним посиланням на alternatives: /usr/sbin/update-alternatives -> alternatives. Отже, параметр --get-selectionsнічого не показує (вихід із помилкою показу використання).
uvsmtid

1
Я неправильно не прочитав питання. Вибачте. Це для Debian. Я намагався знайти те саме, що і ти, і я не можу відповісти на цю відповідь. Цікаво, чи варто видалити свою відповідь?
кж

До вас. Якщо ви вважаєте, що це за певних обставин і є корисним для когось іншого, варто просто залишити його.
uvsmtid

16

Точна відповідь:

ls /var/lib/alternatives

Каталог /etc/alternativesпідтримує плоский довгий список всіх посилань, що змішують господарів і рабів разом. Невідомі посилання не можна використовувати з alternatives --display [symlink]командою.

У той же час каталог /var/lib/alternativesмістить інформацію про стан (включаючи взаємозв'язок між ведучим і веденим) для кожної групи у скороченому списку імен файлів, всі з яких можна безпосередньо використовувати з --displayопцією. Наприклад /var/lib/alternatives/java:

alternatives --display java

4
На Ubuntu 12.04 його немає /var/lib/alternatives, здається /var/lib/dpkg/alternatives.
Hibou57

1
Чудова відповідь, спасибі! Одне доповнення: на Debian і Armbian це /etc/alternativesзамість/var/lib/alternatives
Олексій Веснін

4

Найпростішою відповіддю було б ...

ls /etc/alternatives

1
Це завжди очевидніше, коли ти вже знаєш відповідь :)
ясний

Це також була моя перша здогадка. Але це мене не задовольнило. Список занадто довгий, що містить посилання головних і ведених.
uvsmtid

-1

На Ubuntu 12.04 (можуть бути і деякі попередні версії, які слід перевірити), і, ймовірно, і на Debian (щоб перевірити):

ls /var/lib/dpkg/alternatives

Перелічіть його лише для отримання настроюваних альтернативних імен, оскільки записи в цих каталогах не є посиланнями. До речі, у цьому каталозі може бути стислий файл, тому імена, перелічені там, не завжди можуть бути використані як є. Вих. Я маю/var/lib/dpkg/alternatives/psql.1.gz


Не дуже корисно, оскільки в питанні чітко сказано, що це стосується RedHat Enterprise Linux. Спосіб налаштування RHEL правильно описаний в інших відповідях.
Kosi2801
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.