.run ファイルを実行すると良い結果。 sudoで実行するとJavaを検出できません。

.run ファイルを実行すると良い結果。 sudoで実行するとJavaを検出できません。

いくつかのアプリケーションをインストールするために.runファイルを実行しようとしています。 /opt/にアプリケーションをインストールしています... sudoなしで実行すると、インストーラは正しく実行されますが、/opt/に書き込むことはできません。 sudoを使用して実行すると、インストーラがコンピュータで有効なJavaインストールを見つけることができないと文句を言います。

Javaはoracle rpmを使用してインストールされます。

$rpm -ivh --prefix=javapath jdk1.7.0_75.x86_64.rpm   

$ which java
/usr/bin/java
$ echo $JAVA_HOME
/usr/lib/java-1.7.0/jdk1.7.0_75
$ sudo echo $JAVA_HOME
/usr/lib/java-1.7.0/jdk1.7.0_75
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/java-1.7.0/jdk1.7.0_75/bin
$ sudo echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/java-1.7.0/jdk1.7.0_75/bin
$ java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
$ javac -version
javac 1.7.0_75

その後、

$ ./installer.run

うまくいきますが、

$ sudo ./installer.run

戻ってくる

Error: There has been an error.
The installer could not find a valid JAVA(tm) on this machine.

これはシステムエラーではなくアプリケーションエラーです。

ベストアンサー1

実行sudo visudoまたは開く/etc/sudoers

配線を確認してsecure_paths="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Javaが別の場所にある場合は、そのパスをこのリストに追加してください。

おすすめ記事