Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Psycho_Mind

Guardar dependências/pacotes instalados

Mensagens Recomendadas

Psycho_Mind

Boas.

Vou precisar de correr num pc sem acesso à Internet um programa em Python que irá requerer diferentes programas/bibliotecas/dependencias,etc. que podem ser facilmente adquiridas através do synaptic ou apt-get... mas visto o pc não ter qualquer acesso à Internet necessito de instalar tudo sem ter acesso online.

Assim pensei que poderia guardar as instalações efetuadas através do synaptic ou apt-get e assim ter forma de ter no pc o que preciso, só não sei é qual será a melhor forma de o fazer e se será util fazê-lo. Agradeço desde já qualquer ajuda.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Miker09

Olá, primeiro deves saber quais pacotes vais precisar, depois procuras na net um .deb ou um .rpm dependendo do linux que uses.

Se não haver esse pacote, tens de procurar o código fonte e instalar manualmente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Olá, primeiro deves saber quais pacotes vais precisar, depois procuras na net um .deb ou um .rpm dependendo do linux que uses.

Se não haver esse pacote, tens de procurar o código fonte e instalar manualmente.

Eu sei quais os pacotes terei de instalar... e ainda são uns quantos. Mas o problema é que através de synaptic, apt-get, etc., é uma coisa simples e rápida, já ter que arranjar pacote a pacote (tar, deb,...) tem sido complicado pois de tão simples que são as coisas não é fácil de arranjar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Deves conseguir fazer isso usando os .deb, e instalando-os no sistema. Um aptitude download deve ser suficiente para fazeres download do pacote (assumindo que está disponível nos repositórios usados pelo sistema). No entanto, isto tem inconvenientes como só funcionar em sistemas que suportem pacotes .deb (ou outro formato que queiras disponibilizar).

Não consegues simplesmente colocar os ficheiros das dependências na pasta da aplicação? E depois indicas à aplicação a localização dos ficheiros?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Não consegues simplesmente colocar os ficheiros das dependências na pasta da aplicação? E depois indicas à aplicação a localização dos ficheiros?

Não sei se percebi a tua questão!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

A ideia é teres as dependências instaladas na mesma pasta de onde corres a aplicação.

Tipo, tens uma pasta com o programa Python, que depois tem uma sub-pasta chamada libs, onde estão as bibliotecas que o programa precisa. A pasta que continha o programa, leva com ele as bibliotecas de que depende já instaladas.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

A ideia é teres as dependências instaladas na mesma pasta de onde corres a aplicação.

Tipo, tens uma pasta com o programa Python, que depois tem uma sub-pasta chamada libs, onde estão as bibliotecas que o programa precisa. A pasta que continha o programa, leva com ele as bibliotecas de que depende já instaladas.

Exato... Será algo assim que pretendo. Mas não sei como posso guardar essas dependencias que são instaladas pelo synaptic, apt-get, etc. Suponho que as mesmas vão para um diretorio especifico, mas como posso depois fazer uso delas para o efeito que pretendo e que referis-te ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Para obteres os ficheiros das bibliotecas, podes tentar compilá-las manualmente. Se vais distribuir tu as bibliotecas, e se estas vão ser locais à tua aplicação, penso que não seria má ideia usar versões que tu compilaste.

Mas também podes ver os ficheiros instalados por um pacote no Synaptic, seleccionando o pacote, e depois indo a Properties > Installed Files.

Depois precisas também de investigar como definir a localização das bibliotecas quando corres o programa (pressuponho que consigas fazer isso definindo alguma variável de ambiente, ou até numa script de arranque do programa).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Penso que isto será a (possivel) solução:

sudo apt-get --print-uris --yes install PACKAGE_NAME | grep ^\' | cut -d\' -f2 > ficheiro.txt

Basta inserir o nome dos pacotes e ele guarda o url das dependencias, sendo so preciso descarregar a partir do url... e fica-se com os deb associados, sendo apenas necessario posteriormente de instalar como .deb na maquina sem ligaçao internet

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

A parte de procurar as dependencias no synaptic é que se mostra mais moroso. Primeiro o pacote tem de estar instalado para poder ver quais foram utilizadas e depois ter de ir uma a uma inserir no comando para as poder descarregar para o ficheiro.

Não sei se haverá uma forma mais simples de as obter.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Se forem só dependencias do Python que possas instalar num virtualenv, podes conter todas as dependencias do teu programa sem teres que "poluir" o sistema do utilizador com dependencias.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Se forem só dependencias do Python que possas instalar num virtualenv, podes conter todas as dependencias do teu programa sem teres que "poluir" o sistema do utilizador com dependencias.

É possivel assim que tenha problemas com essa alternativa, visto necessitar de outras dependencias que não apenas as do Python.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.