Подтвердить что ты не робот

/tmp в Linux Android SDK

Просто, чтобы поработать с ним, вчера вечером я установил Android Studio/SDK, и оба они были установлены во время установки и использования, и он неоднократно взорвал мой раздел 2Gb/tmp. Есть ли способ сказать этому монстру использовать что-то другое, кроме /tmp, особенно для загрузки/распаковки?

Fedora release 20 (Heisenbug)

Спасибо

4b9b3361

Ответ 1

Настройка -Djava.io.tmpdir=whatever не работала для меня. Я просто создал $HOME/tmp/PackageOperation04, а затем создал символическую ссылку из /tmp.

cd ~
mkdir -p tmp/PackageOperation04
cd /tmp
ln -s $HOME/tmp/PackageOperation04

Таким образом, Android SDK использует для этого раздел /home вместо /tmp.

Ответ 2

Вы можете изменить местоположение временного каталога, используемого виртуальной машиной Java под управлением Android Studio. В Android Studio 2.0 или более поздней версии выберите "Справка" → "Редактировать пользовательские параметры виртуальной машины". Это создаст копию файла установки vmoptions в вашем собственном каталоге конфигурации и откроет его в редакторе. Добавьте следующую строку и перезапустите:

-Djava.io.tmpdir=<directory>

где <directory> - это абсолютный путь к каталогу в разделе с достаточным пространством. Если <directory> не существует, он будет создан при следующем запуске Android Studio.

Вы также можете отредактировать файл напрямую (и должны быть в версиях до 2.0), но его местоположение зависит от версии платформы и, возможно, от настройки среды. Подробнее см. Настройка Android Studio: параметры IDE и VM, JDK и т.д..

Альтернативным решением было бы увеличить размер /tmp, который в вашем случае скорее всего является разделом tmpfs и, следовательно, легко изменен.

Ответ 3

Ответ Криса Моллера заставлял меня любопытно проверить исходный код, если есть лучший способ исправить эту проблему /tmp/. И я вижу, что у Android studio 2.3 есть опция STUDIO_VM_OPTIONS, которая позволяет указать файл с параметрами JDK.

Итак, вы можете просто использовать фрагмент ниже и /var/tmp/androidTmp будет использоваться вместо /tmp

echo "-Djava.io.tmpdir=/var/tmp/androidTmp" > ~/android-studio-tmp.fix
STUDIO_VM_OPTIONS=~/android-studio.fix android-studio

Ответ 4

Немного суетился в коде. Решение состоит в том, чтобы запустить JVM с аргументом командной строки, который переопределяет путь по умолчанию tmpdir:

-Djava.io.tmpdir = все, что

Там могут быть более тонкие способы сделать это, но все, что я сделал, это редактировать... /android -studio/bin/studio.sh для замены

VM_OPTIONS = ""

с

VM_OPTIONS = "- Djava.io.tmpdir =/мнт/disk5/Android/TMP"

Ответ 6

Другой вариант - временно увеличить размер вашего раздела /tmp. Для этого вам нужно выполнить следующее: sudo mount -o remount,size=10G/tmp/

Это увеличит размер вашего раздела до 10 ГБ. Пожалуйста, используйте df -h чтобы убедиться, что все прошло хорошо.

Ответ 7

Вы можете использовать файл для /tmp:

как root:

создайте файл желаемого размера ((пример для размера 10 GiB/tmp):

dd if=/dev/zero of=/path/to/your/tmp_dir bs=1024M count=10

создать на нем файловую систему:

mke2fs -j /path/to/your/tmp_dir

раздел готов, смонтируйте его:

mount -t ext3 -o loop /path/to/your/tmp_dir /tmp

источник: https://www.yourhowto.net/increase-tmp-partition-size-linux/

Ответ 8

Мне удастся разархивировать системный образ на Sdk/system-images/android-xx после того, как студия Android затопила мой раздел 4mp tmp...

Таким образом, нужно просто разархивировать нужное место.

По-видимому, он создает /tmp/PackageOperationxx для каждой загрузки, выполняет загрузку, просят вас продолжить, разархивируйте содержимое в tmp и переместите его в нужное место.

Серьезно андроидские парни...

Ответ 9

После того, как предыдущие предложения не сработали для меня, я хочу добавить другое (не очень чистое) решение:

После начала установки нового виртуального устройства (все еще использующего /tmp ) файл

~/Android/Sdk/system-images/android-< version >/google_apis/x86/.installer/.installData

который содержит временный путь. Отмените загрузку, отредактируйте временный путь в нужную папку и перезапустите установку устройства.

Позже я понял, что решение, добавляющее -Djava.io.tmpdir=< tempdir > как предложил Paul Ratazzi с помощью Help → Edit Custom VM Options, для меня это не сработало, поскольку оно было добавлено в android-studio/bin/studio64.vmoptions, но добавив его в android-studio/bin/studio.vmoptions, вместо этого выполнило эту работу для меня. Вероятно, это лучший способ сделать это...

Ответ 10

Настройка java.io.tmpdir как говорили другие, работала для меня, но для разархивирования системных образов все еще используется /tmp в Android Studio 3.0.1. Использовать те же PackageOperation0x поэтому я не хотел, чтобы для них были специальные символические ссылки, как в ответе user3150128.

Так как это проблема только при необходимости новых SDK и образов, я запустил Android Studio один раз и успешно сделал обновление, установив TMPDIR в командной строке:

$ TMPDIR=/path/to/bigger/tmp/dir /path/to/android/studio.sh

Ответ 11

Я боролся с проблемой "без места на устройстве" почти неделю. (Я не буду бить!) Я попробовал все, что нашел здесь и на других сайтах, и проблема продолжалась. Я наконец-то полностью установил Android-студию и работал правильно, используя следующий подход:

  • Я создал папку с именем PackageOperation01 в разделе с пространством 100G.
  • Я пошел в каталог tmp и удалил все, что, как мне казалось, было безопасно удалить, включая папку PackageOperation01.
  • В каталоге tmp я создал ссылку, указывающую на новую папку PackageOperation01, которую я создал.
  • Я назвал ссылку PackageOperation01. Это позволило мне установить ПОЛНОСТЬЮ все.

У меня все еще было две ошибки (.. "нет пробела..." ). Вернувшись в каталог tmp, я обнаружил, что моя ссылка на PackageOperation01 была удалена установщиком, и был создан новый каталог с именем PackageOperation07.

  1. Я удалил PackageOperation07 из tmp и создал новую папку с именем PackageOperation07 на моем большом разделе рядом с PackageOperation01.
  2. Я восстановил ссылку на мою папку PackageOperation01 и создал новую ссылку в папку PackageOperation07.

На этот раз Android Studio установлена ​​без ошибок.

Ответ 12

Решение с символическими ссылками не будет работать, потому что в каталоге присутствия или link/tmp/PackageOperation0 * Android Studio создает каталог /tmp/PackageOperation 0 * + 1.

Например, мы создали символическую ссылку /tmp/PackageOperation 01 и начали загружать системные образы, Android Studio просто создаем каталог /tmp/PackageOperation 02 и будем работать с ней.

Ответ 13

У меня есть разрешение, изменив папку ссылок tmpfs на /var/tmp. Добавьте это после строки, содержащей #! Bin/sh в android-studio.sh:

экспортировать TMPFS =/var/tmp

Ответ 14

У меня есть альтернативная версия с использованием символических ссылок. Другие решения не помогли мне, так как символические ссылки PackageOperation0 * всегда удалялись. Но создание символической ссылки внутри этой папки для папки unzip сработало:

cd ~
mkdir -p tmp/PackageOperation01
mkdir -p tmp/PackageOperation01/unzip
cd /tmp/PackageOperation01
ln -s $HOME/tmp/PackageOperation01/unzip unzip