Update-Alternativen --Install sagt, es braucht Link Name Pfad Priorität?

36

Ich tippte:

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/ jdk1.8.0/bin/java" 1

Es heißt, dass Alternativen --install die Priorität des Linknamenspfads benötigt

Swapnil
quelle
1
Was genau schreibst du ? Bitte seien Sie vorsichtig mit Interpunktionen (z. B. Bindestrichen) und Leerzeichen
steeldriver
@steeldriver könnten Sie die Pfadpriorität des Linknamens erklären. Wenn es keinen Link wie "/ user / bin / java /" gäbe, würde dies zu einem fehlerhaften Ergebnis führen?
Swapnil
1
Es sollte den Link erstellen (und den Namen, wenn es keine aktuelle javaGruppe in gibt /etc/alternatives). AFAIK Das einzige, was vorher existieren muss, ist die Pfadkomponente , dh /usr/lib/jvm/jdk1.8.0/bin/java- aber beachte, dass (wie in deiner Frage gepostet) du ein Leerzeichen in deinem hast - daher mein 1. Kommentar.
Steeldriver
@steeldriver yeah / usr / lib / jvm / bin / java / ist verfügbar. Ich habe Sudo Update-Alternativen ausprobiert - installiere "/ usr / bin / java" "java" "/usr/lib/jvm/jdk1.8.0.05/bin/java" 1
Swapnil
1
Lässt du ein Leerzeichen zwischen dem --und dem Wort install? wenn ja, nicht - es muss sein --install. Auch die Anführungszeichen sollten nicht notwendig sein, nursudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0.05/bin/java 1
Steeldriver

Antworten:

52

Lassen Sie ein Leerzeichen zwischen dem - und dem Wort install? wenn ja, nicht - es muss sein--install

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0.05/bin/java 1

Die Anführungszeichen sollten nicht erforderlich sein, da keines der Elemente eingebettete Leerzeichen enthält - obwohl sie keinen Schaden anrichten sollten.

Stahlfahrer
quelle
1
Beachten Sie auch, dass relative Pfade hier nicht akzeptiert werden. Sie müssen den absoluten Pfad verwenden.
Bruno Finger
Was ist der Bereich der Prioritätsnummern? Vielen Dank im Voraus.
Christianbueno.1
7

Der Befehl sintax lautet

alternatives --install <link> <name> <path> <priority>

Wenn die Parameter kein Leerzeichen enthalten, benötigen Sie keine Anführungszeichen.

In Ihrem Fall:

alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 1

Achtung: Hattest du vor jdk wirklich ein Leerzeichen im Pfad?

Daniele Licitra
quelle
3

Dies liegt daran, dass dieser Befehl symbolische Verknüpfungen verwaltet. Ich empfehle auszuführen man update-alternatives, um mehr Informationen über den Befehl zu erhalten.

Charo
quelle
2

Ich versuche nur, mit diesem Beitrag einen Beitrag zu leisten. Ich benutze diesen Befehl, sobald ich mein Setup richtig kenne.

echo 1 | sudo update-alternatives --config java
Valter Silva
quelle