Каталог / tmp в Linux Android SDK

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

Fedora релиз 20 (Гейзенбаг)

Спасибо

 EpochGrinder08 апр. 2018 г., 16:26
Это ссылка на текущий баг-трекер для этой проблемы (чем больше людей отметит ее, тем выше вероятность ее исправления)issuetracker.google.com/issues/72581483

Ответы на вопрос(14)

настройка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
 mcr14 мая 2018 г., 20:15
Это не сработало для меня, но я попробую еще раз.
 Lukas Novak01 нояб. 2018 г., 15:23
В отличие от @mcr, это работает для меня, спасибо.

Мне удалось распаковать образ системы вручнуюSdk / система-изображения / андроид-хх после того, как андроид студия залила мой 4Гб раздел tmp ...

таким образоммы просто должны распаковать в нужное место.

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

Серьезно, ребята, андроид ...

Крис Моллер ответ заставил меня проверить исходный код, если есть лучший способ исправить эту проблему / 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
 Mauricio Pasquier Juan31 авг. 2017 г., 23:38
Для людей, сталкивающихся с этой проблемой при загрузке системных образов, вам нужно указать другой каталог tmp в $ JAVA_OPTIONS, а не только в $ STUDIO_VM_OPTIONS (те же опции, т.е. "-Djava.io.tmpdir")
 Alex25 мар. 2017 г., 15:09
Спасибо, tmpdir в файле vmoptions теряется при каждом обновлении, что очень раздражает.
 mcr14 мая 2018 г., 20:14
Это не сработало для меня. Я должен был lvextend / TMP.

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

Я создал папку с именемPackageOperation01 на перегородке с пространством 100G.Я пошел вtmp каталог и удалил все, что я чувствовал, было безопасно удалить, в том числеPackageOperation01 папка.вtmp каталог я создал ссылку, указывающую на новыйPackageOperation01 папка, которую я создал.Я назвал ссылкуPackageOperation01, Это позволило мне установить ПОЧТИ все.

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

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

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

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

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

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

После начала установки нового виртуального устройства (все еще использующего / 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 вместо этого сделал работу для меня. Это, вероятно, лучший способ сделать это ...

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

экспорт TMPFS = / var / tmp

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

как корень:

создайте файл нужного размера ((например, для размера 10 ГиБ / тм):

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/

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

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

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

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

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

 W. Goeman04 сент. 2018 г., 23:10
Я только что сделал ссылку PackageOperation01 до 09. Кажется, что он вращается. Он должен принять параметр tempdir, хотя, если он собирается сбросить> 4GB там ...
 ashishWaghmare03 мар. 2018 г., 23:44
Папка может измениться на PackageOperation01 в Android Studio 3.0. Пожалуйста, проверьте каталог в / tmp для правильного имени папки.
 user153197115 июн. 2017 г., 17:20
Да, я не мог понять, где настроить параметры виртуальной машины для начальной загрузки / загрузки / настройки SDK, и я обнаружил, что он будет использовать vmoptions для всего, кроме загрузки пакетов. Для того, чтобы запустить первый запуск, я должен был сделать это для обоихPackageOperation01 а такжеPackageOperation04 каталоги.
 drizzd18 окт. 2017 г., 11:00
Похоже, что это единственное рабочее решение в последних версиях Android SDK (25.2.5 протестировано здесь).
 fupduck18 мая 2018 г., 14:55
android-studio создала в моем случае разные папки и всегда игнорировала уже существующие. Если у вас возникла та же проблема, попробуйте решение Пола Ратацци, приведенное ниже.
 Izabela Orlowska21 июн. 2018 г., 12:38
@ user3150128 Спасибо за этот обходной путь, вы молодцы! :)
 Syakur Rahman02 авг. 2017 г., 04:47
Дело в том, что созданная ссылка, кажется, всегда удаляется на определенных этапах установки

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

-Djava.io.tmpdir = все,

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

VM_OPTIONS = ""

с

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

 Chris Moller27 июн. 2016 г., 20:39
См. «Правильный способ сделать это» (tm) Пола Ратацци, выше.
 user226023724 сент. 2016 г., 19:22
Ошибка: не удалось найти или загрузить основной класс .opt.tmp

Вы можете изменить местоположение временного каталога, используемого виртуальной машиной 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 раздел и, следовательно, легко изменяемого размера.

 Lieuwe15 нояб. 2016 г., 16:37
Я попробовал этот подход, добавив приведенную выше строку в studio64.vmoptions (в каталоге AS bin). Сам AS теперь использует этот tmpdir, но установщик SDK игнорирует его и создает каталог / tmp / PackageOperation01, который он использует для загрузки и распаковки SDK.
 Paul Ratazzi15 нояб. 2016 г., 19:01
В моей системе (Ubuntu 16.04 LTS, AS 2.2.2) SDK Manager использует временный каталог относительно местоположения SDK. Я не вижу способа изменить это без изменения местоположения всего SDK. Тем не менее, это действительно кажется совершенно другим вопросом (JVM temp против SDK temp), так что, возможно, ваша проблема получит лучшую экспозицию с новым новым вопросом.
 Lieuwe16 нояб. 2016 г., 14:56
Я предполагаю, что OP делал первый запуск AS, после чего он установит последнюю версию Android SDK. Именно установка этого SDK «взрывает» (его слова) каталог / tmp. С тех пор я обнаружил, что после установки этого начального SDK все последующие установки SDK будут правильно использовать каталог tmp, указанный в -Djava.io.tmpdir.

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

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

Отэтот комментарий к сообщению в блоге работа для меня:

Создать каталог

$ mkdir /opt/android-studio/tmp

В верхней части studio.sh добавьте:

export _JAVA_OPTIONS=-Djava.io.tmpdir=/opt/android-studio/tmp

Ваш ответ на вопрос