[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ajuda com script



Sávio Ramos wrote:
Em Tue, 26 Jun 2007 10:10:06 -0300
"Renato S. Yamane" <renatoyamane@mandic.com.br> escreveu:

Esse script instala o quê?
Tem coisa errada nele, pois ele está procurando por algo que não
existe.

Não instala nada. Na verdade esta mensagem caiu em outro ramo com o
mesmo assunto. A mensagem original e sua resposta estão abaixo:

Original:

Sem querer fiz um "aptitude clean" em vez de "aptitude autoclean" , um
dia isso acontece mesmo... Desejo obter de volta todos os arquivos pois
eu os uso para atualizar duas outras máquinas sem acesso a interntet.

Minha idéia é a seguinte:

dpkg -l | awk '{print $2}' > pacotes

aptitude download  nomes_dos_pacotes_que_estão_no_arquivo_texto




Resposta:

PACOTES=`dpkg -l | awk '{print $2}'`

aptitude download $PACOTES

Salva essas linhas num arquivo texto, bota
#!/bin/sh
na primeira linha, faz
chmod +x nome-do-script
nele, e salva em um dir no $PATH.
Depois diz pra ele rodar
nome-do-script
na linha de comando.



Sávio,
Algumas observações:

- pra um prog rodar direito dentro de um script, ele precisa ser nao-interativo. Um prog que espera input do usuario nao pode rodar de dentro de um script, por razões obvias. Se o aptitude fica perguntando:

E: Nenhum arquivo passível de ser obtido via download para libavcodec0d
versão 0.cvs20060823-8; é possível que esse seja um pacote local ou
obsoleto ? É porque ele espera entrada do usuario, e isso nao pode acontecer dentro de um script (a menos que o script tenha sido escrito com isso em mente). Voce tem algumas opcoes:
1. pesquisar um modo de desabilitar tudo que o aptitude pergunta (switches como --yes-to-all, coisa do genero...). Eu nao posso ajudar muito com isso, uso o apt-get, em vez do aptitude.


2. Baixar com outra ferramenta, wget, etc.


- Lá no começo do script, quando você usa o awk pra tratar a saída do dpkg e gera um arquivo texto, pelo menos aqui no meu pc o arquivo texto tem um cabecalho, que o aptitude quando lê, acha que é nome de pacote. Deve ser por isso que ele diz que não há nenhum pacote chamado 'Name'. Rode o comando

dpkg -l | awk '{print $2}' > pacotes

depois abra o arquivo 'pacotes' pra ver.
O script ainda não tá no ponto, hehe. Precisa de mais desenvolvimento...


Boa sorte.







Reply to: