Buscando automaticamente as dependências de pacotes do Ubuntu
“Sabe quando você não tem internet funcionando no linux, precisa compilar o driver da placa de rede e se depara com aquela instrução num tutorial: baixe o pacote x… Mas como você vai baixar o pacote x se você nao tem internet? SOLUÇÃO: Simples, vá pra um computador que tenha internet e baixe o pacote que você precisa. NOVO PROBLEMA: O pacote pode ter várias dependências, você tem que ficar procurando por todos elas (e isso é muito chato).
Bom, depois de contada esse breve historinha vamos ao que interessa: Fiz um pequeno programa em python que procura e faz o download de todas as dependências de um pacote .deb para a distribuição ubuntu. O link do projeto é: http://code.google.com/p/uspc/ E aqui tem o link para o programa no qt-apps: http://qt-apps.org/content/show.php/uspc+-+Ubuntu+Simple+Package+Crawler?content=89841. Espero que alguém ache útil :)”
Enviado por Rafael Sachetto (rsachettoΘgmail·com) – referência (code.google.com).
Esse programa em Python funciona para obter as dependências de pacotes do Debian, além do Ubuntu?
Tem como portar este script para outra distribuição?
muito bom,eu estava procurando por isso a tempo!
mas como saber quais as dependencias que ele guarda como banco de dados? ele vai procurar as dependencias de um sistema ubuntu arrecem instalado? ou você precisa de alguma forma importar a lista dos pacotes?
só mais uma duvida: o programa é feito em gtk/qt? pode ser usado por modo texto?
grato
Allan Taborda: por enquanto o programa busca somente as dependências de pacotes do Ubuntu.
Leandro Hamid: posso estudar isso para as próximas versões do programa :)
João Claudio: o programa busca as dependências do pacote fazendo o crawling das páginas de http://packages.ubuntu.com/. Eu fiz assim pq o programa pode ser usado em qq distribuição linux e inclusive no windows!
Ele é feito usando qt, mas em breve vou disponibilizar a versão que funciona somente com modo texto :)
Há anos eu procurava algo deste tipo … heheheh
Desde minha época de Kurumin, quando eu nao tinha internet, e levava as vezes semanas para ir instalar algum pacote a mais pq nao tinha as dependencias… haehhaehahehahe
Muito bom mesmo.. bela iniciativa !
Ola. Muito bom ein! srsrsrs… Como está o critério de parada? Ela vasculha até encontrar as bibliotecas nativas do Ubuntu? Abracos.
vejamos…. se eu combinar um live cd do ubuntu, um pen drive pra armazenar o q preciso e a seguinte linha de comando:
apt-get –download –build-dep –download-only [nome do pacote]
Também faria o mesmo… é claro que este programa facilita um bocado as coisas pelo fato de permitir que possamos utilizar qualquer micro… Mesmo assim, deixo a dica.
Abraços
Jeferson.info – O seu blog de linux
Heder: Na verdade existe um procedimento recursivo que guarda os pacotes listados, quando todas as dependencias ja estao listadas o programa para.
Deixa eu ver se entendi: uma aplicação feita para o Ubuntu, que tem como carro-chefe o GNOME; mas é feita inicialmente com Qt, é referenciada em um repositório de aplicações Qt e que, para variar, nem sequer cogita a hipótese de desenvolvê-lo em GTK, optando por fazer isso em modo texto, é isso? Porquê não o fez inicialmente em GTK? Nossa… &;-D
Ednei_Pacheco: Não vejo nenhum problema em uma aplicação Qt executar no gnome (td bem, tem a questão de ter que instalar as bibliotecas do qt que não vêm por padrão no Ubuntu). Mas lembre-se tb que existe o Kubuntu, que é baseado no KDE, portanto usa Qt, e tem seus pacotes listados no site http://packages.ubuntu.com/ (de onde eu obtenho as informações dos pacotes).
Porquê não o fiz inicialmente em GTK?
Bem isso foi por limitação intelectual do programador mesmo (no caso eu :) ). Eu já tentei aprender gtk e simplesmente não entra nao minha cabeça, acho extremamente complicado. Por isso eu fiz em qt, pq é o framework que eu arranho um pouquinho.
Obs: não quero começar aqui uma discussão sobre Qt e GTK!
Eu costumava conectar o computador rapidamente a internet para atualizar a própria lista de pacotes por um apt-get update de modo que ele próprio pudesse me dizer as dependências que ele queria.
Depois da lista de pacotes atualizada, bastava fazer um
apt-get install --print-uris nome-do-pacote
e seria mostrado a lista de pacotes prontinha pra se fazer o download por wget…De quebra, uso essa linha de comando pra atualizar as estações sem saturar o link de download:
apt-get -y --print-uris dist-upgrade | cut -f 2 -d ' | grep -E ^[fh]t?tp | sort | wget -c --timeout=60 --limit-rate=20k -i -
Obs: cuidado, há – (menos) e — (menos menos) nos comandos acima.