私はLinux Mintを使用してローカルCIサーバーを設定したいJava開発者です。私が使用したい重要なツールの1つは、さまざまなバージョンのライブラリ/言語(Java / Scala / Mavenなど)を簡単にインストールして管理するためのツールであるSDKMANです。
これまで、私はいつも一般ユーザーとしてローカルコンピュータにこのプログラムをインストールしてきました。問題は、私が設定したシステムに複数の異なるユーザー(Jenkins / Docker /などの特定のユーザー)が必要であることです。
これらのユーザーがSDKMANを使用できるようにするためのガイドに従いました。ここに紹介- ほぼ成功しました。インストールはROOTで行われます。ユーザーがこのフォルダにアクセスできるようにするには、次の手順を実行しました。
sudo chmod -R a+w /usr/local/sdkman
わかりました、それをもたらします。他のユーザーとしてログインしました(ジェンキンス)最新バージョンのScalaをインストールしてみてください。設置プロセスは順調でした。ただし、もう一度ログインして別のユーザーとしてログインした場合(ルーストアバウト)Scalaをインストールしてみましたが、バージョンが異なります。これは質問を提起します。出力は次のとおりです
$ sdk install scala 2.12.7
Downloading: scala 2.12.7
In progress...
Installing: scala 2.12.7
mv: cannot move '/usr/local/sdkman/tmp/out/scala-2.12.7' to
'/usr/local/sdkman/candidates/scala/2.12.7': Permission denied
Done installing!
Do you want scala 2.12.7 to be set as default? (Y/n): n
フォルダだと思います。/usr/local/sdkman/候補/スカラーユーザーが作成しましたジェンキンス権限/所有権を次のように設定します。
drwxrwxr-x 3 jenkins jenkins 4096 May 9 12:06 scala
したがって、ユーザーはルーストアバウト何も追加/修正できません!したがって、SDKMANの使用の完全な概念はここに適用されません!言語/ライブラリをインストールできますが、ユーザーはアクセス権がないため、他のバージョンをインストールできないようです。
私の質問は、目的の結果を得るためにここで権限を処理する方法です(各ユーザーは必要なものをインストールできます)。 SDKMANユーザー用に別々のグループを作成し、デフォルトフォルダの再帰グループの所有権を「sdk」に変更しようとしましたが、新しい候補が作成された場合、所有者/グループは操作を実行するユーザー名と同じで同じです。
一時的な修正方法は、グループソリューションを実行し、必要なすべてのバージョンのツール/言語をインストールしてから、次の手順を実行することです。
sudo chgrp -R sdk /usr/local/sdkman
フォルダに。しかし、もう少し強力なソリューションがありますか?
答え1
これはsdkman
フォーラムディスカッションからのものです。glitterのsdkman/ユーザーの問題:
sdkman
現在は単にユーザースペースツールであり、そのように設計されています。明らかな理由から、このフォルダを共有しないことをお勧めします。複数のユーザーに共有フォルダの状態を変更させますかsdkman
?私には匂いがしません。