Warning: An error occurred while preparing SDK package Google APIs : No space left on device

Warning: An error occurred while preparing SDK package Google APIs : No space left on device

2017, Sep 25    

Aqui trataremos de solucionar um “erro” que poderá ocorrer durante a instalação de pacotes necessários para o desenvolvimento móvel para Android. Na ocasião, o mesmo acontecia na instalação tanto através do ./sdkmanager via linha de comando quanto pelo Android Studio. O problema é claro:

"No space left on device"

Mas como poderia ser possível se o disco possuía espaço o suficiente?

Pesquisando pela Internet, foi possível verificar que os downloads realizados dos pacotes no SDK Manager são gravados no diretório /tmp. Ou seja, não havia espaço o suficiente para que o download fosse completado e que fosse possível dar seguimento à instalação do mesmo.

Como no momento da instalação do meu SO eu não reservei uma partição para o /tmp, o mesmo recebia uma alocação automática de disco com 50% do total de memória RAM da máquina sempre que o systemd inicializava.

Diante disso encontrei duas alternativas:

  1. Reparticionar o disco (fora que questão)
  2. Criar um link do /tmp para a home do meu usuário

O número 2 funcionou no início, mas logo não funcionou como o desejado. Mas, depois de voltar a reler sobre disco rígido no Guia Foca GNU/Linux, veio a sacada com o arquivo /etc/fstab.

Para quem não sabe, o arquivo /etc/fstab:

permite que as partições do sistema sejam montadas facilmente especificando somente o dispositivo ou o ponto de montagem1

Traduzindo:

Basta especificar o diretório /tmp e alocar o espaço de disco necessário à ele

Com isso, no arquivo /etc/fstab foi inserido a seguinte linha:

tmpfs /tmp tmpfs defaults,size=8g 0 0

Basicamente, temos a partição que queremos montar (tmpfs), o ponto de montagem (/tmp), o tipo de sistemas de arquivos (tmpfs), as opções (defaults, size=8g) onde inserimos o tamanho da alocação de disco para o diretório /tmp, o dump sem backup (0) e a ordem (0) para que não seja verificado na inicialização do sistema.

O arquivo /etc/fstab ficará semelhante a isso:

Fstab

Dessa forma, basta realizar o reboot da máquina, prosseguir com a instalação dos pacotes para o desenvolvimento móvel para Android e ser feliz HA-HA.

Referência

1. http://www.guiafoca.org/cgs/guia/iniciante/ch-disc.html