"exa"コマンドが見つかりません

"exa"コマンドが見つかりません

私はインストールしましたexaインストール後の指示に従って、私のファイルcargoにパスを追加しました。~/.bashrcPATH=/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

  1. ログアウトしてもう一度ログインしてください。

答え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つ(---の場合)は、ファイルに関連付けられている「グループ」について.です。最後のグループは他のすべての人のためのグループです。/rootr-x../

あなたの権限が私と似ている場合、rootユーザーだけがrootフォルダ全体を読み、書き込み、転送できます。実行を追加することでこの問題を解決できますが、ルートディレクトリ/アカウントの権限を/root操作するsudo chmod +x /rootのは一般的に悪い考えであり、グループや他の管理ツールの代わりに単一のコマンドを使用してこれを行うのは特に悪い考えです。 。

代わりに、おそらくあなたが望むのは、すべてのユーザーのためにバイナリをインストールする方法を見つけることです。通常、次のインストール方法があります。

sudo make install   

ただし、文書を見て他のことを行うこともできます。

関連情報