1

SDKマネージャーを使用して適切なSDK、ツールなどをすべてダウンロードし、さらにgenymotionをインストールするなど、メインの管理者アカウントにAndroid Studioをインストールしました。すべてが設定された後、そのコンピューターのイメージが作成され、ラボ内の 36 台のコンピューターに展開されました。メイン管理者としてログインするとすべてが機能しますが、明らかに Android Studio はユーザーの個人ライブラリに物を保持するのが好きなので、他のユーザーの環境は適切に設定されていません。

Android フォルダーを /Users/main/Library から /Users/main/Shared フォルダーにコピーしようとしましたが、セットアップ ウィザードを実行して最新の API をダウンロードする必要がないように思えます (これは私はしません)。コースを希望します)。

ラボの仕組みとして、学生ごとにネットワーク アカウントを用意しています。すべての学生は、任意のコンピューターにアクセスして、一部のシステム設定へのアクセスが制限された標準ユーザーとしてログインできます。生徒がコンピューターを切り替える場合 (1 年を通してさまざまなパートナーと作業する必要があるため、そうしてもらいたいのですが)、2 つの API 用のすべての SDK ツールを再ダウンロードする必要はありません。 (19 & 21) を使用します。

全員を主管理者としてログインさせることが理想的な解決策ではない理由は、学生が個人のファイル ストレージを含むネットワーク ドライブにアクセスできないためです。

Android Studio を複数のユーザー アカウント用にセットアップする方法はありますか?その一部には管理者権限があり、その他には標準ユーザー権限がありますか? このラボには、Yosemite を実行する 36 台の 2013 iMac が含まれています。

4

1 に答える 1

2

解決策を見つけることができましたか?

私は同じシナリオを扱っていますが、ラボのイメージを再作成するのではなく、既存の 10.9 ラボにソフトウェア + Yosemite アップデートをインストールするだけです。

私が見つけたのは、sdk フォルダーをユーザー テンプレート (/System/User Templates/English.proj/Library/Android) に配置することです。ただし、これにより各アカウントが最大 2.5GB になるため、私のような 160Gb ディスクを使用している場合、あまり実用的な解決策ではありません。

私がやったことは、ユーザーテンプレートへのスマートリンクを作成することでした。sdk をディスクに 1 回保存し (たとえば、/Android/sdk のように)、各ユーザーのプロファイルにリンクを作成することで、Android Studio が起動して期待どおりに動作し、すべてのユーザーの貴重なディスク領域を使い果たすことはありません。

これは、私が Apple Remote Desktop で使用したスクリプトです。これには、ネットワーク共有から android studio アプリケーションと sdk を取得することが含まれます。

mkdir /Volumes/fs2/
echo "Mounting share"

mount_smbfs //user:pass@fs2/installs/ /Volumes/fs2/

echo "Copying Android studio Application"
cp -r /Volumes/fs2/software/MacOS/Android/Android\ Studio.app /Applications/
chmod -R 655 /Applications/Android\ Studio.app
chown -R root:wheel /Applications/Android\ Studio.app

mkdir /Android

echo "Copying Android sdk folders"
cp -r /Volumes/fs2/software/MacOS/Android/sdk /Android/

chmod -R 655 /Android/
chown -R root:wheel /Android/

umount /Volumes/fs2

echo "Linking sdk to user accounts"
for USER_TEMPLATE in "/System/Library/User Template"/*
do
    ln -s /Android $USER_TEMPLATE/Library/Android
done

for USER_HOME in /Users/*
do
  USER_UID=`basename "${USER_HOME}"`
  if [ ! "${USER_UID}" = "Shared" ]
  then
    ln -s /Android $USER_HOME/Library/Android
  fi
done
于 2015-09-28T15:02:57.043 に答える