Para um sistema que sempre será mantido offline, geralmente é melhor usar um dos robustos métodos de gerenciamento de pacotes offline apresentados em algumas das outras respostas. Isso porque eles facilitam a atualização de pacotes já instalados, em vez de apenas instalar um punhado de pacotes uma vez.
No entanto, para casos isolados em que você deseja instalar pacotes rapidamente em um sistema que não possui uma conexão com a Internet (e você pode baixá-los em outra máquina e acessá-los), é possível fazê-lo. A principal complicação é determinar o que você precisa, já que um pacote geralmente tem outros pacotes dos quais ele depende e que, portanto, devem ser instalados antes ou ao mesmo tempo em que o pacote é instalado.
Esta resposta é motivada pela pergunta duplicada g ++ no Ubuntu 14.04 , e usa o caso de precisar instalar g++
como seu principal exemplo.
Eu enfatizo que este método não deve ser usado a longo prazo como uma alternativa para algo que, pelo menos, facilita a determinação e instalação automática de atualizações de segurança necessárias. Nunca conectar-se a uma rede reduz consideravelmente o potencial de um ataque, mas alguns bugs de segurança podem ser explorados por meio de dados de qualquer origem.
Embora este método possa parecer complexo, normalmente demora apenas alguns minutos. Para pacotes com um grande número de dependências, isso pode levar mais tempo. Para instalar metapacotes que atraem um número muito grande de dependências (por exemplo, ubuntu-desktop
em um sistema mínimo), pode levar muito mais tempo para baixar todos os arquivos .deb necessários e é improvável que esse método seja adequado.
Determinando Dependências Necessárias
Você pode simular a instalação para determinar quais outros pacotes são necessários para satisfazer as dependências do pacote. Passar o sinal -s
para apt-get
( antes você especifica qualquer ação) faz isso.
apt-get -s install g++
Eu omiti sudo
, pois isso é apenas uma simulação, portanto, privilégios de root não são necessários.
Se você realmente deseja instalar todas as ferramentas mais comuns para criar pacotes, em vez de apenas g++
, talvez prefira:
apt-get -s install build-essential
A saída (para g++
) será parecida com esta:
NOTE: This is only a simulation!
apt-get needs root privileges for real execution.
Keep also in mind that locking is deactivated,
so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
g++-4.8 libstdc++-4.8-dev
Suggested packages:
g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg
libstdc++-4.8-doc
The following NEW packages will be installed:
g++ g++-4.8 libstdc++-4.8-dev
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Inst libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Inst g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Inst g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])
Conf libstdc++-4.8-dev (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Conf g++-4.8 (4.8.2-19ubuntu1 Ubuntu:14.04/trusty [amd64])
Conf g++ (4:4.8.2-1ubuntu6 Ubuntu:14.04/trusty [amd64])
Isso diz que para instalar g++
no meu sistema, eu preciso dos pacotes g++
, g++-4.8
e libstdc++-4.8-dev
.
Seguir os resultados de uma simulação geralmente é melhor do que simplesmente procurar as dependências de um pacote (ou assumir que o que você precisa é o mesmo que o anterior), porque:
- Você já pode ter algumas dependências instaladas.
- As dependências (ou seja, os outros pacotes que um pacote precisa para instalar ou funcionar) podem ter dependências que você ainda não instalou.
Obtendo os pacotes
Quando souber de quais pacotes você precisa, faça o download deles. Eu sugiro usar o Launchpad para isso, porque os downloads são criptografados por SSL, o que ajuda a evitar corrupção de arquivos.
- Isto não é apenas uma salvaguarda contra a manipulação deliberada por parte maliciosa; Ele também ajuda a impedir a corrupção acidental de arquivos, que é um problema muito mais comum para arquivos baixados.
- Existe um tipo que não impede: quando um arquivo é baixado apenas parcialmente, mas você acha que acabou.
- A instalação de um pacote normalmente com
apt-get
ou do Centro de Software não requer HTTPS porque seu hash é verificado em relação a uma lista de hashes assinada digitalmente. Se você acabar colocando esses pacotes no seu cache de pacotes e usando apt-get
para instalá-los, isso acontecerá.
- Mas se você acabar tendo que instalar os pacotes baixados manualmente com
dpkg -i
, isso não será feito.
Você pode procurar um pacote digitando o nome dele em Pacotes no link e clicando em "Encontrar um pacote" " Por exemplo, a pesquisa por g++-4.8
leva você à página do pacote de fontes gcc-4.8 .
Em seguida, desloque-se para o codinome da sua versão do Ubuntu. Você está correndo 14.04, então é o Trusty Tahr. Nomes de código para todos os lançamentos do Ubuntu estão listados na página wiki de lançamentos . Clique no triângulo apontando para a direita para ver os downloads de pacotes para ele.
Para alguns pacotes, você pode expandir listas de downloads de mais de um bolso .Você pode ver:
-
release , a versão de um pacote lançado com uma versão do Ubuntu (ou disponível no momento do lançamento);
-
segurança , atualizações de segurança enviadas após o lançamento;
-
atualizações , quaisquer atualizações enviadas após o lançamento;
-
propostas , atualizações que estão disponíveis para serem instaladas, mas ainda estão em teste e não são recomendadas para uso geral;
-
backports , software originado em uma versão posterior do Ubuntu e reconstruído para uma versão anterior.
Por exemplo, aqui está o que está disponível para o Firefox em 14.04:
Geralmente você vai querer pacotes em segurança ou atualizações se eles existirem, e caso contrário, pacotes em release .
Depois de expandir a lista de pacotes, encontre o arquivo .deb
para sua arquitetura. Os debs são nomeados name_version_architecture.deb
. As arquiteturas mais comuns são:
- PC / Mac de 64 bits (chamado
amd64
, para processadores Intel e AMD)
- PC / Mac de 32 bits (chamado
i386
, também para ambos)
Por exemplo, para obter o pacote g++-4.8
para a versão de 64 bits do Ubuntu, você pode fazer o download de g++-4.8_4.8.4-1ubuntu15_amd64.deb
.
Instalando os Pacotes
Se os pacotes recuperados forem as mesmas versões que apt-get
' install
action teriam recuperado e instalado automaticamente (se o sistema estivesse conectado à rede), você pode colocar os pacotes em /var/cache/apt/archives
e simplesmente executar esse comando:
sudo apt-get install g++
Se este sistema nunca foi conectado à Internet, então este provavelmente será o caso quando todos os pacotes que você recuperou forem da pasta release . Independentemente de o sistema estar ou não conectado à Internet, este também será quase sempre o caso se nenhum pacote em nenhum outro pacote for mostrado no Launchpad. (Essencialmente, a única situação que não acontecerá é se você instalou um sistema alfa ou beta e nunca o atualizou.)
No caso específico de instalar g++
, usaria apt-get
.
Nos casos em que isso não funcionar ou se você não quiser, instale os pacotes colocando-os em uma pasta vazia e em execução:
sudo dpkg -Ri /path/to/folder
Ou você pode nomear os pacotes individualmente. Este exemplo supõe que os pacotes estejam no diretório atual (ou seja, que você tenha cd
ed no diretório que os contém):
sudo dpkg -i package1.deb package2.deb ...
A menos que o número de pacotes instalados seja muito pequeno e você saiba a ordem exata na qual eles precisam ser instalados para que as dependências sejam satisfeitas, é consideravelmente mais eficiente usar esses métodos do que manualmente instale cada pacote individualmente.