/usr/localへのアプリケーションのインストール

/usr/localへのアプリケーションのインストール

一部のサイレントインストールアプリケーション(Netbean、JDKなど)は、通常/usr/localのユーザー(ルートではなく)にインストールされ、実行されます。

ただし、他のアプリケーションではtar.gzファイルを抽出して実行するだけです。通常のユーザーは、コマンドを使用してあるディレクトリから別のディレクトリにコピーすることはできず、cprootユーザー(コマンド)を使用する必要があります。Download/usr/localsu

ただし、rootユーザーにコピーしたため、このディレクトリはrootに属しているため、通常のユーザーとしては実行できません。これは私に頭痛を与える。上記の他のアプリと同様に、一般ユーザーとしてどのように実行しますか?それとも別のインストール方法がありますか?

答え1

/usr/localそして、そのサブディレクトリ(binlibなどshare)は、ルートが所有している必要があり(おそらく)、誰でもそこでタスクを実行できるように755に設定する必要があります。

解凍してコピーした場合は、個々のバイナリの権限であり、一般的な使用を許可するには、この権限も755である必要があります。

それがどのように$PATH機能するか覚えておいてください。 JDKの例はこれに関して混乱するかもしれませんが、実行可能ファイルは./configure通常のtarballに、ライブラリはに、ドキュメントなどの他のエントリは。これは適切なパスであり、同じパターンに従う必要があります。つまり、bin/(パッケージの単一ディレクトリ)やサブディレクトリのどこにでもコンテンツを配置するだけでは機能しません。make install/usr/local/bin/usr/local/lib/usr/local/share/usr/local

答え2

発生する可能性のある2つの問題があります。

最初の質問 - ディレクトリの実行権限

/usr/localにコピーしたディレクトリの1つに対する権限が正しく設定されていない可能性があります。ルート以外のユーザーがこのディレクトリでプログラム/スクリプトを実行できるようにするには、ディレクトリに対する権限が必要です。

「他の」ユーザーがディレクトリ外でアプリケーションを実行できるように、ディレクトリに対する権限を設定する必要があるかもしれません。

例えば

# don't have permissions on directory
root$ cd /usr/local
$ ls -ld somedir
drwxr-x--- 2 root root 4096 Apr 25 13:27 somedir

# have permissions on the script
root$ ls -l somedir/testscript.bash 
-rwxr-xr-x 1 root root 23 Apr 25 13:27 somedir/testscript.bash

この場合、他のユーザーがそのスクリプトに対する実行権限を持ってスクリプトを読み込んで実行できるとしても、そのスクリプトが配置されているディレクトリに対する読み取りおよび実行権限がないため許可されません。

アクセスを許可するようにディレクトリの権限を変更します。

 user$ ls -ld somedir/
 drwxr-xr-x 2 root root 4096 Apr 25 13:27 somedir/

 user$ somedir/testscript.bash 
 hi

問題全体は、tar.gzファイルから抽出されたディレクトリの権限を変更し、スクリプトを含むすべてのディレクトリを見つけて、そのディレクトリからchmod +rx <dir>コマンドを実行することで解決できます。

2番目の質問 - ファイル実行権限

.tar.gzファイルのファイルに対する権限が設定されていない可能性があるため、解凍すると、アーカイブ内のアプリケーションまたはスクリプトがこれらの権限を失う可能性があります。この特定の問題があるファイルを解決すると、chmod +x <script>問題が解決します。

### For example
user$ ls -ld somedir
drwxr-xr-x 2 root root 4096 Apr 25 13:27 somedir/

user$ ls -l somedir/testscript.bash 
-rw-r--r-- 1 root root 23 Apr 25 13:27 somedir/testscript.bash

user$ somedir/testscript.bash
bash: somedir/testscript.bash: Permission denied

関連情報