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: