É possível instalar um programa em uma unidade externa?

9

Eu corro o Ubuntu 14.04 em um chromebook Toshiba usando crouton. A unidade em que meu sistema operacional está instalado é pequena, com apenas 3,6 GB de espaço livre. Gostaria de instalar sage no meu sistema, mas sage requer 6 GB de espaço livre no sistema.

No entanto, mantenho sempre um cartão SD inserido na unidade. O cartão tem 175 GB de espaço livre. É possível instalar o sage no cartão SD?

A maneira como estou tentando baixar sage com os comandos

apt-add-repository -y ppa:aims/sagemath
apt-get update
apt-get install sagemath-upstream-binary

como encontrado aqui .

    
por Brian Fitzpatrick 20.05.2015 / 05:33

2 respostas

4

A divisão de pacotes Debian em discos diferentes em pacotes por pacotes é difícil. Não há suporte para isso; você teria que invocar dpkg separadamente nos pacotes que você deseja instalar em um local não padrão.

Colocar uma árvore de diretórios em um disco separado é fácil. Felizmente para você, tanto quanto eu posso dizer de uma leitura rápida, os pacotes Sage no PPA instalam a maioria dos arquivos em /usr/lib/sagemath . Você pode facilmente colocar isso no cartão SD. Digamos que o cartão SD esteja montado (quando presente) em /media/sdcard . Crie um diretório lá e faça um link simbólico.

mkdir /media/sdcard/sagemath
ln -s /media/sdcard/sagemath /usr/lib/sagemath

Em seguida, todos os arquivos que o dpkg instala em /usr/lib/sagemath terminarão no cartão SD (independentemente de qual pacote eles sejam).

Se você tentar usar o Sage ou gerenciar os pacotes do Sage enquanto o cartão SD não estiver presente, você receberá uma mensagem de erro, e se você inserir o cartão SD e repetir a ação, não haverá nenhum dano.

    
por 21.05.2015 / 02:40
4

Esta é uma questão interessante. Vamos discutir algumas maneiras que isso poderia ser tentado.

Método 1: Manipulando a localização durante a instalação do apt-get

Usando o apt-get, não seria possível fazê-lo. Se você estiver instalando usando .deb arquivos, novamente, isso não será possível. A razão é simplesmente que o local para instalação é codificado nesses pacotes.

Para manipular o local de instalação, você terá que compilar sage da fonte e modificar seu makefile antes de instalá-lo. Isto virá com um fardo de gerenciar as dependências.

No entanto, houve discussões sobre isso. Talvez as pessoas tenham feito isso. Talvez eles tenham de alguma forma manipulado o local de instalação. Veja aqui e here . Se você encontrar alguma maneira de fazer isso, por favor, adicione um comentário.

Método 2: Alterando a localização da pasta / usr

Você pode alterar a localização da pasta /usr e transferi-la para o seu cartão externo. Normalmente, isso seria desencorajado, mas como você está dizendo que sempre o mantém inserido, ele deve ficar bem.

Para fazer isso, existem duas maneiras:

  1. (preferível) Crie uma partição em seu cartão externo e transfira todo o conteúdo na pasta /usr atual para essa partição. Em seguida, modifique seu /etc/fstab para montar essa partição como a pasta /usr e remova a antiga pasta /usr . Para fazer tudo isso, você precisará inicializar a partir de algum disco de recuperação ou algum CD / USB ativo.

  2. Nesse método também, primeiro inicialize a partir de um disco de recuperação ou live CD / USB e mova a pasta /usr para o cartão externo e crie um symlink para o novo% pasta/usr.

PS

Essa é uma pergunta interessante, sobre a qual eu tenho pensado ultimamente quando meu disco rígido estava ficando cheio. Vou tentar algumas dessas coisas e atualizar minha resposta. Comentários são bem-vindos para criticar alguns desses métodos.

UPDATE

Veja também @gilles answer. Sua sugestão é melhor. Em vez de mover toda a pasta /usr para o cartão externo, basta mover o /usr/lib/sagemath para o cartão externo, pois ele ocupa cerca de 3,1 GB de sua instalação. Então, no Método # 2 , você pode mover essa pasta em vez de /usr .

    
por 20.05.2015 / 06:47