Jump to content
Psycho_Mind

Guardar dependências/pacotes instalados

Recommended Posts

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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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).

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.