Wie fügen Sie CLASSPATH-Parameter dauerhaft hinzu, wenn Sie sudo verwenden?

3271
Fnux

Unter Ubuntu 12.04.2 LTS 64bits müssen Sie bei Verwendung von sudooder sudo -ioder sudo susogar suin einer Sitzung die beiden folgenden Befehle eingeben, um sowohl Java als auch Scala verwenden zu können:

sudo -i CLASSPATH=$CLASSPATH:/usr/share/java/scala-library.jar export CLASSPATH 

Ist es möglich, diese Änderungen beim Booten dauerhaft und effektiv zu machen?

Ich habe versucht, schließen CLASSPATH=$CLASSPATH:/usr/share/java/scala-library.jarsowohl in Bashrc meines Benutzerkonto und das root - Kontos aber diese Änderung nicht genommen wird bei der Verwendung von sudo, oder sudo -ioder sudo suoder sogar su!

TIA für jegliche Hilfe zu diesem Problem.

3
`man 5 sudoers`, Abschnitt` Command environment`. Sie können auch "su-" für eine vollständige Login-Shell verwenden. n.m. vor 11 Jahren 0
Vielen Dank, ich habe den ganzen Mann gelesen, aber nichts gefunden, was mit CLASSPATH zu tun hat. Außerdem bin ich ein Neuling in Ubuntu (und Linux im Allgemeinen) und kann ein wenig dumm sein. Wo und was muss ich Sudoern hinzufügen (mithilfe von visudo), um meine erforderlichen Änderungen vorzunehmen? TIA. Fnux vor 11 Jahren 0
Verwenden Sie "visudo" und suchen Sie nach "env_keep" -Abschnitten. n.m. vor 11 Jahren 0
In sudo gibt es nichts, was spezifisch für Java / JVM (`CLASSPATH`) ist, aber es bietet flexible Optionen und Konfigurationsmöglichkeiten für den Umgang mit der Umgebung. Randall Schulz vor 11 Jahren 0
Tut mir leid, Randall, aber die Sache mit Sudo ist, dass es den CLASSPATH "tötet", der sowohl von Scala als auch von Java verwendet wird. Es ist also nicht nur eine Frage von / etc / sudoers, sondern auch von / etc / environment. Und da ich ein Neuling bin, ist es ziemlich schwierig, detaillierte Antworten zu finden, um solche Parameter einzustellen. Trotzdem, danke für Ihre Eingabe. Fnux vor 11 Jahren 0

1 Antwort auf die Frage

1
Arkanon

You could use the env_keep configuration option in sudoers and add "CLASSPATH" so that the CLASSPATH environment variable is carried into the sudo environment. This would only work if CLASSPATH is already set in your home environment, but it sounds like you've already got that far.

This discussion on the Ubuntu Forums might help.

Thanx Arkanon und ja, das habe ich auch getan und das funktioniert für Ubuntu 10.04 LTS. Leider funktioniert das mit dem 12.04 LTS nicht wie erwartet. Wenn Sie dies tun, können Sie Sudo gedit bla bla bla nicht mehr starten, ohne die folgende Fehlermeldung zu erhalten: Anzeige kann nicht geöffnet werden! Danke nochmal für den Trick. Beim 12.04 war die einzige Lösung, die sich als funktionierend erwies, die Zeile Defaults env_reset von / etc / sudoers zu deaktivieren und die Zeile CLASSPATH = $ CLASSPATH: /usr/share/java/scala-library.jar in / etc / environment hinzuzufügen für Ubuntu 12.04 LTS. Fnux vor 11 Jahren 0
Hmmm, hast du diese http://askubuntu.com/questions/186015/cannot-open-gedit-display-on-ubuntu-server-12-04 gesehen, die sich auf dasselbe Problem zu beziehen scheint? Arkanon vor 11 Jahren 0
Hallo Arkanon. Und ja, ich habe das Zeug auch schon gelesen! Übrigens, ich mache das nicht auf einem "Server" ohne GUI-Installation, sondern von einer vollständigen "Desktop" -Installation mit Gnome und Unity! Ich wiederhole also, die Zeile Defaults = env_keep = CLASSPATH in Ubuntu 12.04 in / etc / sudoers zu setzen, erzeugt dieses "seltsame" Verhalten (weil ich nicht "bug" sagen möchte), wenn dieses Problem bei Ubuntu 10.04 nicht auftritt! Danke an Canonical 'Devs für so eine "dumme" Änderung "!: = ( Fnux vor 11 Jahren 0