私はインストールしましたexa
インストール後の指示に従って、私のファイルcargo
にパスを追加しました。~/.bashrc
PATH=/root/.cargo/bin:$PATH
/root/.cargo/bin
警告:インストールされたバイナリを実行できるようにするには、PATHに追加する必要があります。
それにもかかわらず走ろうexa
としたら
Command 'exa' not found, did you mean:
...
...
...
私が実行すると、printenv PATH
次の/root/.cargo/bin
場所に表示されます。終わりPATH、最初に追加しましたが。
sudo /root/.cargo/bin/exa
コマンドを実行すると正常に動作します。原因は何ですか/どのように正しく機能させることができますか?
答え1
次のいずれかを実行する必要があります。
1.
source ~/.bashrc
2.
. ~/.bashrc
- ログアウトしてもう一度ログインしてください。
答え2
パスのインポートがうまくいかない場合は、権限の問題かもしれません。このバージョンはrootとして実行されるため、sudo
他の変数を使用するため、権限は問題になりませんが、パスにバイナリが見つかりません。PATH
ユーザーがディレクトリを「検索」(技術用語が何であるかわからない)には、そのディレクトリに対する「実行」権限が必要です。ディレクトリの内容が一覧表示されると、3 番目の位置に X と表示されます。だから実行すると、いくつかのsudo ls -lash /root
結果は次のようになります。
4.0K drwx------ 10 root root 4.0K Feb 3 2020 .
4.0K drwxr-xr-x 24 root root 4.0K May 28 16:27 ..
2番目の文字とダッシュセットは権限です。前の部分はd
ディレクトリであることを示し、次の3文字(rwx
)はファイル所有者に対する読み取り、書き込み、および実行権限を表します。次の3つ(---
の場合)は、ファイルに関連付けられている「グループ」について.
です。最後のグループは他のすべての人のためのグループです。/root
r-x
..
/
あなたの権限が私と似ている場合、rootユーザーだけがrootフォルダ全体を読み、書き込み、転送できます。実行を追加することでこの問題を解決できますが、ルートディレクトリ/アカウントの権限を/root
操作するsudo chmod +x /root
のは一般的に悪い考えであり、グループや他の管理ツールの代わりに単一のコマンドを使用してこれを行うのは特に悪い考えです。 。
代わりに、おそらくあなたが望むのは、すべてのユーザーのためにバイナリをインストールする方法を見つけることです。通常、次のインストール方法があります。
sudo make install
ただし、文書を見て他のことを行うこともできます。