Как установить Android Studio и SDK с поддержкой CLI для Linux и / или Ma c OS X? - PullRequest
1 голос
/ 04 марта 2020

Вместо того, чтобы устанавливать Android Studio и Android SDK в домашний каталог пользователя (в соответствии с рекомендациями IDE), каков будет правильный способ их установки для two или больше пользователей на одном компьютере ?

Проблема возникла из-за необходимости для системных администраторов:

  1. Установка инструментов разработки для нескольких пользователей на одном компьютере.
  2. Установка файлов на один компьютер позволяет легко скопировать одну и ту же настройку на несколько компьютеров.
  3. Удаление пользователей без потери инструментов разработки.
  4. Более чистые обновления дистрибутивов.
  5. Дистрибутивные миграции ( перейти от Ubuntu к Cento OS или Arch Linux, например).

1 Ответ

0 голосов
/ 04 марта 2020

TL; DR

Ma c OS X по умолчанию уже устанавливает AS в папку /Applications.

Linux пользователи должны установить IDE на /opt/android-studio и создайте символическую ссылку от bin/studio.sh до /usr/local/bin/studio (см. раздел сведений о том, как создать значок запуска приложения).

В процессе установки среды IDE измените местоположение SDK на /opt/google/android, предоставив всем пользователям доступ к нему. Не забудьте добавить разрешения на запись для пользователей-администраторов , в противном случае для любых обновлений AS и SDK потребуется разрешение sudo.

По завершении быстрый подход добавляет это к /etc/profile:

#!/usr/bin/env bash

# WARNING
# Directly modify /etc/profile is not recommended.
# Please read the cleaner approach at the following details section.

export ANDROID_HOME=/opt/google/android
export ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle

# PATH exports were split ONLY due THIS post readability
export PATH=${ANDROID_HOME}/emulator:${PATH}
export PATH=${ANDROID_HOME}/tools:${PATH}
export PATH=${ANDROID_HOME}/platform-tools:${PATH}

, затем выйдите из системы и войдите из ОС, чтобы изменения вступили в силу.

Подробно

Даже если возможно достичь результата с помощью менеджеров пакетов ( apt, brew, pacman, sdkmanager, yum, snap, et c), они используют сторонние репозитории пакетов, которые обычно не являются частью официальных дистрибутивов дистрибутивов.

Таким образом, это решение - скорее вопрос личного вкуса, чем абсолютной истины.

Один из них прочитал этот пост как старый способ настройки инструментов sysadmin , позволяющий вам настроить другие вещи, такие как Node.js, Google Cloud SDK , Heroku , et c.

При этом, предположим, ваше имя пользователя в Linux / OS X - stark и зарегистрировано более одного пользователя на вашей рабочей станции (например, potts и widow), но только вы и widow являетесь администраторами.

1. Linux & Unix

Мы будем sh, чтобы создать папку SDK, в которой несколько пользователей смогут получать доступ к инструментам IDE и CLI без совместного использования содержимого моей личной папки (например, /home/stark или /Users/widow )

Решение состоит в том, чтобы установить SDK в /opt, , поскольку они не входят в состав дистрибутива, а двоичные файлы загружаются из стороннего (т.е. не скомпилированы нами через * 1064). *).

Так как только root имеет право изменять /opt, но не рекомендуется использовать sudo каждый раз, когда вам нужно обновить SDK, подход старой школы будет создайте папку, в которой только определенная c группа имеет права на запись:

sudo mkdir /opt/google/android
sudo chmod g+w /opt/google/android

# At Mac OS, use admin contrary to adm
usermod -a -G adm stark
usermod -a -G adm widow

Я использовал /opt/google/android, поскольку такой же подход может быть использован для других инструментов Google SDK (Firebase или GCP * Например, 1075 *), сохраняя все инструменты Google CLI в одном месте.

/opt/
├── anaconda
├── gradle
├── jetbrains
│   ├── pycharm
│   ├── studio
│   └── webstorm
├── node
├── google
│   ├── android
│   ├── chrome
│   └── cloud
└── sonarqube

Чтобы экспортировать команды CLI всем пользователям, наилучшим подходом является настройка переменной PATH на самое высокое profile уровень. Для того чтобы дом был чистым и организованным, вместо того, чтобы добавлять его непосредственно к /etc/profile, давайте создадим /etc/profile.d/android.sh следующим образом:

#!/usr/bin/env bash

export ANDROID_HOME=/opt/google/android
export ANDROID_NDK_HOME=${ANDROID_HOME}/ndk-bundle

# Emulator must come before tools directory
# See https://stackoverflow.com/questions/26483370
export PATH=${ANDROID_HOME}/emulator:${PATH}
export PATH=${ANDROID_HOME}/tools:${PATH}
export PATH=${ANDROID_HOME}/platform-tools:${PATH}

По умолчанию Ubuntu уже выполняет итерации по /etc/profile.d, экспортируя вся оболочка, определенная в файлах *.sh, следовательно, мы можем сохранять семантически организованные конфигурации:

/etc/profile.d/
├── anaconda.sh
├── android.sh
├── gcloud.sh
├── gradle.sh
├── node.sh
└── sonarqube.sh

Ma c OS X не экспортирует файлы по умолчанию в /etc/profile.d, требуя этот код в /etc/profile:

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

В отличие от ~/.bash_profile и ~/.bashrc, которые загружаются при каждом открытии нового терминала, /etc/profile и ~/.profile загружаются после входа в систему . Таким образом, необходимо повторно войти в свой оконный менеджер (или OS X) перед продолжением процесса установки IDE.

Сохранение SDK, установленного в /opt, полезно, потому что:

  • Позволяет вам удалить вашу IDE, не теряя кучу уже загруженных файлов платформы
  • Если вы сохраняете разделенные разделы (как для /home), вы можете сделать то же самое для /opt и /usr/local.
  • Системные администраторы могут легко копировать средства разработки на несколько машин, используя rsync, не беспокоясь о пользовательских ссылках на PATH для каждого /home пользователя.

2. Установка Android Studio

В какой-то момент во время процесса установки IDE будет запрошено местоположение (существующего) SDK. Измените его на /opt/google/android вместо значения по умолчанию в вашем домашнем каталоге.

Android Studio IDE

2.1. Linux

Следуя той же идее, загрузите и установите Android Studio в /opt:

mkdir /opt/jetbrains/

# At Mac OS, use admin contrary to adm
usermod -a -G adm stark
usermod -a -G adm widow

# Unpack and move
sudo tar -xvzf ~/Downloads/android-studio-ide-linux.tar.gz -C /opt/jetbrains/
sudo mv /opt/jetbrains/android-studio /opt/jetbrains/studio
sudo chgrp adm /opt/jetbrains/studio

# Allow calling Android Studio from command line
sudo ln -s /opt/jetbrains/studio/bin/studio.sh /usr/local/bin/studio

Для вызова AS из программ запуска, таких как Gnome Shell, Unity HUD, et c., Создайте панель запуска приложений в /usr/share/applications/jetbrains-studio.desktop следующим образом:

[Desktop Entry]
Version=1.0
Type=Application
Name=Android Studio
Icon=/opt/jetbrains/studio/bin/studio.png
Exec="/opt/jetbrains/studio/bin/studio.sh" %f
Comment=The Drive to Develop
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-studio

Для пользователей, которые хранят одновременно несколько версий AS, вы можете хранить отдельные папки, такие как:

# Stable release
/opt/jetbrains/studio/stable

# Unstable release
/opt/jetbrains/studio/canary

2.2 Ма c OS X

Пользователи Apple должны установить IDE, просто распаковав файл *.dmg в папку Applications.

...