Ubuntu update-alternatives

a partir de

tamanho leigos
http://hi.baidu.com/surendaxiao/blog/item/f933f9d13b58a781a0ec9ce4.html


desenvolvimento Linux hoje, o software disponível tem sido muito. Então, naturalmente haverá algumas funções do software substancialmente o mesmo. Por exemplo, o mesmo editor, há nvi, vim, emacs, nano, e eu disse que estes eram apenas uma parte. Na maioria dos casos, software similar tal função um está instalado no seu sistema, você pode usar o seu nome para executar. Por exemplo, para executar o vim, enquanto a entrada no terminal e vim prima entrar. No entanto, em alguns casos, precisamos chamar um desses programas com uma ordem relativamente fixo. Por exemplo, quando escrevemos um script, basta escrever o editor, não quero ser como "editor que é" para se preocupar. Debian fornece um mecanismo para resolver este problema, update-alternatives é utilizado para alcançar tal mecanismo a.

Ao descrever detalhes das update-alternatives entre, vejamos um exemplo que já estão no sistema. Abra um terminal, o seguinte comando:

Herbert Natsu @: ~ $ ls -l / usr / bin / editor
lrwxrwxrwx a raiz 24 2004-09-26 08:48 1 a raiz / usr / bin / Editor -> / etc / alternatives / Editor.
@ Natsu Herbert: ~ $ ls -l / etc / Alternativas / editor
lrwxrwxrwx 2004-10-27 16:24 1 a raiz 12 é a raiz / etc / alternatives / editor -> / usr / bin / Vim.
Herbert Natsu @: ~ $

Vemos, editor de comando executável é na verdade um link simbólico, o que aponta para / etc / alternatives / editor, e / etc / alternatives / editor também é um link simbólico que aponta para / usr / bin / vim. Assim, quando entro no editor e pressione Enter para executar vim. A razão de se preocupar com a criação dessas duas ligações em / usr / bin e / etc / alternativas, a característica é atingir o acima mencionados: fácil roteiro
do sistema de gestão e escritas procedimentos.

Aqui vamos dar uma olhada na função update-alternatives. Claro, se você acha que eu não me fiz em detalhes, você pode ver manpage este comando: update-alternatives (8).

Parâmetros primeira a introduzir o --display. Ela nos permite ver todo o comando opcional um comando. Execução

Natsu: / Home / Herbert update # -Alternatives --display Editor do
Editor - status é Auto.
Fazer a ligação Classificar esta página Currently Aponta para / usr / bin / vim
/ bin / ED - prioridade -100
Slave editor.1.gz: / usr / denunciar esse compartilhamento de conteúdo /man/man1/ed.1.gz
/ usr / bin / NVI - 19 prioridade
Slave editor.1.gz: /usr/share/man/man1/nvi.1.gz
/ bin / Nano - prioridade 40
editor de Slave. 1.gz: /usr/share/man/man1/nano.1.gz
/ Usr / bin / Vim - prioridade 120
Slave editor.1.gz: /usr/share/man/man1/vim.1.gz
/ usr / bin / emacs21 - prioridade 0
Slave editor.1.gz: / usr / Share /man/man1/emacs.1emacs21.gz
. Current 'Melhor 'versão é / usr / bin / vim
Natsu: / Home / Herbert #

você pode ver todos os comandos podem ser usados para editor de link na minha máquina.

Aqui para falar sobre --config. Esta opção permite-nos escolher um comando:

Natsu: / Home Herbert Update / # --- Config Editor Alternativas

. Há 5 alternativas que o Fornecer `Editor de'

Seleção Alternativa
-------------- ---------------------------------
. 1 / bin / ED
2 / usr / bin / NVI
. 3 / bin / Nano
+. 4 * / usr / bin / Vim
. 5 / usr / bin / emacs21

Pressione Enter para manter o padrão [*], ou digite Seleção Número :. 4
`O Usando / usr / bin / vim 'para o Editor Provide`'.
Natsu: / Home / Herbert #

eu não mudá-lo, porque eu ainda prefiro o vim. Claro, você pode escolher um outro programa.

Aqui vamos apresentar alguns dos conceitos. Primeiro, update-alternatives em geral pelo script de instalação e postinst tais prerm invocado automaticamente, de modo que um estado onde há duas alternativas: automático e manual. O estado inicial de cada alternativa é automático. Se o sistema encontrar um administrador modificar manualmente a alternativa, ele automaticamente se torna o estado passou de um manual, de modo que o script de instalação não irá atualizá-lo. Se você quer uma alternativa para mudar automaticamente de volta, basta executar

editor update-alternatives --auto

nele. Você notou? Falamos de um "nome". Como escrever o nome dele? Isto é o que queremos introduzir um segundo conceito:
Nome geral - o que significa o nome "público" similar a uma série de funções do programa (incluindo caminho absoluto), como / usr / bin / editor.
ligação - Este refere-se a um nome / etc / alternativa a alternativa, tal como editor.
alternativa - Tal como o nome sugere, este é o caminho para um programa opcional está localizado (incluindo caminho absoluto), tal como / usr / bin / vim.
- auto, - exposição e --config com são link. Dizemos terceiro conceito é a prioridade. Este é relativamente simples, é claro, maior a prioridade do programa, o melhor (na maioria dos casos, eu não quero discutir) conceito final é a alternativa mestre e escravo. Pense nisso, você será / usr / bin / editor está ligada ao vim, mas quando você executar editor homem é emacs veja a página de manual, você vai Zuoheganxiang isso? Isto leva ao conceito de alternativa mestre e escravo: ao atualizar a principal alternativa, será atualizada a partir da alternativa.

Depois de dizer estas quatro importante conceito, apresentamos as outras duas opções. Quanto à outra. . . . Eu acredito que você verá a página de homem, certo?

O primeiro é --install. Seu formato é:

Atualização Alternativas --install-Gen Fazer a ligação alt PRI [SGen --slave slink Sal] ...

Gen, Link, alt, disse PRI estão acima de nós. Se você precisa de alternativa de, você pode usar --slave adicionados mais tarde. Se você adicionar um novo conjunto de alternativas para uma alternativa existente, a ordem destas alternativas será adicionado ao grupo alternativo já existe na
lista, e com um novo comando opcional, como um novo comando, caso contrário, ele vai estabelecer um grupo alternativo novo automatizado.

Ai de mim! Entrei para uma alternativa errada. Eu não quero que esta alternativa de. Neste caso, o seguinte comando pode ser executado:

Atualização de caminho-nome Alternativas --remove

é um nome no arquivo / etc / alternativas no nome que está acima do link, eo caminho é um caminho nome do programa opcional absoluta que você deseja remover o (ter a certeza, isso só remove o programa a partir da lista, e realmente não vai excluir o arquivo executável do programa a partir do disco rígido). Se você remover um programa que está a ser ligada a partir de um grupo alternativo e este grupo ainda não se tornou vazio, update-alternatives irá automaticamente usar um dos outros programas opcionais têm prioridade em vez do programa original. Se o grupo torna-se vazia, então, mesmo este conjunto alternativo irá ser removido. Se você remover o programa não está vinculado, somente informações sobre o programa será removido.

Diga-lhe um exemplo. Eu baixei o Eclipse, e instalado gcj e gij. Mas eu encontrei a ferramenta java GNU não é suficiente para executar o Eclipse. Eu tive que ir para o site da Sun para baixar java suas ferramentas jdk. Porque é seu próprio instalado, eu instalei-los no / usr / local, de modo que no futuro, quando você reinstalar o sistema Linux você ainda pode usar esses programas. Então eu tenho que fazer é usar isso em java e javac jdk para substituir o sistema original. Execução

Natsu: / Home / Herbert # Atualização do --display Java-Alternativas
. O Java - status é Auto
Fazer a ligação Classificar esta página Currently Aponta para /usr/local/j2sdk1.4.2_06/bin/java
/usr/bin/gij-wrapper-3.3 - prioridade 33 é
Escravo java.1.gz: /usr/share/man/man1/gij-wrapper-3.3.1.gz
/usr/local/j2sdk1.4.2_06/bin/java - prioridade 100
java.1.gz escravo: /usr/local/j2sdk1.4.2_06/man/man1/java.1
melhor versão atual `' é / usr / local /j2sdk1.4.2_06/bin/java.
Natsu: / Herbert # update-alternatives --display javac / home
javac - estatuto é automática.
ligação atualmente aponta para /usr/local/j2sdk1.4.2_06/bin/javac
/usr/bin/gcj-wrapper-3.3 - prioridade 33
javah escravo: /usr/bin/gcjh-wrapper-3.3
escravo javac.1.gz: /usr/share/man/man1/gcj-wrapper-3.3.1.gz
escravo javah.1.gz: /usr/share/man/man1/gcjh-wrapper-3.3.1.gz
/ usr / bin / gcj- envoltório-3,4 - prioridade 33
javah escravo: /usr/bin/gcjh-wrapper-3.4
escravo javac.1.gz: /usr/share/man/man1/gcj-wrapper-3.4.1.gz
javah.1.gz Slave: /usr/share/man/man1/gcjh-wrapper-3.4.1.gz
/usr/local/j2sdk1.4.2_06/bin/javac - prioridade 100
Slave o javah: / usr / / j2sdk1 locais .4.2_06 / bin / javah
Slave javac.1.gz: /usr/local/j2sdk1.4.2_06/man/man1/javac.1
Slave javah.1.gz: /usr/local/j2sdk1.4.2_06/man/ man1 / javah.1
atual 'Melhor '/usr/local/j2sdk1.4.2_06/bin/javac versão é.
Natsu: / Home / Herbert #

(você vê depois que eu atualização) você pode obter sobre o que você deseja atualizar informações alternativas. Eu estava tão atualização:

update-alternatives --install / usr / bin / javac javac /usr/local/j2sdk1.4.2_06/bin/javac 100 --slave / usr / bin / javah javah /usr/local/j2sdk1.4.2_06/bin/javah --slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/local/j2sdk1.4.2_06/man/man1/javac.1 --slave / usr / share / man / man1 /javah.1.gz javah.1.gz /usr/local/j2sdk1.4.2_06/man/man1/javah.1
update-alternatives --install / usr / bin / java java /usr/local/j2sdk1.4.2_06 / bin / java 100 --slave /usr/share/man/man1/java.1.gz java.1.gz /usr/local/j2sdk1.4.2_06/man/man1/java.1


Publicado 18 artigos originais · Louvor obteve 16 · vista 390 000 +

Acho que você gosta

Origin blog.csdn.net/f_zongjian/article/details/7054626
Recomendado
Clasificación