2017-04-04 5 views
0

私は経由して錆のコンパイラをダウンロードしてインストールします。sudoを前に付け、それはまだローカルディレクトリにインストールされますが、rustcが他のユーザーのホームディレクトリにインストールされている場合、どのようにrustcを実行しますか?

sudo curl https://sh.rustup.rs -sSf | sh 

$HOME/.cargo

それがインストールされている口座から、rustc --versionを行うこと1.16.0 (...)を与えます。

rustcは、インストールされているLinuxアカウントとは異なるLinuxアカウントから実行したいと考えています。これは可能ですか?

.cargoディレクトリへの論理リンクを作成し、$HOME/.cargo/binをPATHの先頭に追加しました。

しかし、この他のアカウントからrustc --versionはこの不可解なメッセージを与える:あなたは(推奨)rustup経由でインストールする場合

error: no default toolchain configured 
+0

粗回避策に時間を費やす代わりに、ツールチェーンをきれいにインストールする必要があります。バンドルされたスクリプトに依存するワイルド・インストールを試みるのではなく、システムのソフトウェア管理システムを使用してください。 – arkascha

+1

@arkascha 'rustup'は[公式に推奨される方法]です(https://www.rust-lang.org/en-US/install.html)。 –

+0

@LukasKalbertodt誰がお勧めしますか?見る? ;-)多くのソリューションは、製品にバンドルされているスクリプトを使用し、完全な管理権限を与え、それを盲目的に実行することが推奨されています。それはいい考えですか?いいえ! – arkascha

答えて

4

をあなたのホームディレクトリに2つのの重要なフォルダを持っている:(.cargo.rustupをし、あなたのバージョンによっては、下位互換性の理由から、ソフトリンク.multirust.rustupを指しています)。したがって、.rustupへのリンクも作成する必要があります。それは、奇妙なエラーメッセージがすべてであることです。

インストールされているLinuxアカウントとは異なるLinuxアカウントからrustcを実行したいと思います。これは可能ですか?

しかし、これは異なる質問です。 cargo buildのような多くのコマンドは、これらのディレクトリの1つに書き込もうとします(ダウンロードされたボックスをキャッシュするにはcargo buildの場合)。 2番目のユーザーが上記の両方のディレクトリ内で完全な読み取り/書き込み/実行の権限を持っている場合はうまくいくはずですが、それが良い解決策であるかどうかは疑問です。必要に応じて、両方のフォルダを好きな場所に移動して、両方のユーザに両方に完全な権限を与え、ユーザごとにソフトリンクを作成することができます。


しかし、再び、必要とされているどのくらいのプライバシーに応じて、それが複雑になります(ただし、たとえば、あなたがあなたの仕事とあなたの趣味のもののための1つのアカウントのアカウントを持っている場合、これはそれほど重要ではありません) 。ここでは、両方のフォルダの上に概要を示します。

  • ~/.cargo/<several files>:小さな、ユーザー固有の、やや機密ファイルには、(箱のログインデータが含まれていてもよいです。IO)
  • ~/.cargo/bin:100メガバイトの周りのプログラムのインストールされたプログラムとプロキシ()、実行権限をが
  • ~/.cargo/registryが必要:インストールコンパイラのバージョンや他のすべてをインストールすることができます:ライブラリ・キャッシュ、かなり大きな、機密ではない
  • ~/.rustup/toolchainsを得ることができますrustup
  • ~/.rustup/<tmp and update-hashes>経由:やや一時ファイル
  • ~/.rustup/settings.toml:小さな、ユーザー固有の

あなたのニーズに応じて、本物の.cargo.rustupのフォルダをホームディレクトリに入れて、.cargo/binのようなフォルダをソフトリンクするだけです。

関連する問題