一部のサイレントインストールアプリケーション(Netbean、JDKなど)は、通常/usr/local
のユーザー(ルートではなく)にインストールされ、実行されます。
ただし、他のアプリケーションではtar.gz
ファイルを抽出して実行するだけです。通常のユーザーは、コマンドを使用してあるディレクトリから別のディレクトリにコピーすることはできず、cp
rootユーザー(コマンド)を使用する必要があります。Download
/usr/local
su
ただし、rootユーザーにコピーしたため、このディレクトリはrootに属しているため、通常のユーザーとしては実行できません。これは私に頭痛を与える。上記の他のアプリと同様に、一般ユーザーとしてどのように実行しますか?それとも別のインストール方法がありますか?
答え1
/usr/local
そして、そのサブディレクトリ(bin
、lib
など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