Falha no Apt-get no script bash?

1

Eu tenho várias máquinas (rodando o Ubuntu LTS 12.4 de 64 bits) que precisam ser configuradas da mesma maneira, então eu criei um script de shell que será executado automaticamente na primeira vez que a máquina inicializar. Funciona na maior parte, mas qualquer chamada para o apt-get falha. Por exemplo, aqui estão dois comandos que eu quero executar.

debconf-set-selections ./files/ldap.preseed
apt-get -y install ldap-auth-client

Aqui está o resultado se eu digitar essas linhas diretamente:

root@spare:/tmp/scripts# debconf-set-selections ./files/ldap.preseed
root@spare:/tmp/scripts# apt-get -y install ldap-auth-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be installed:
  ldap-auth-config libnss-ldap libpam-ldap
The following NEW packages will be installed:
  ldap-auth-client ldap-auth-config libnss-ldap libpam-ldap
0 upgraded, 4 newly installed, 0 to remove and 67 not upgraded.
Need to get 0 B/200 kB of archives.
After this operation, 877 kB of additional disk space will be used.
Preconfiguring packages...
[and so on...]

Mas se eu executar um script contendo apenas essas linhas, isso acontece:

root@spare:/tmp/scripts# ./ldap.cr
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ldap-auth-client

A mesma coisa ocorre quando eu executo o script usando o sudo, ou faço a root primeiro. Qual é a diferença, para o programa, se está sendo chamado diretamente ou através de um script de shell? E é possível convencê-lo do contrário?

EDIT: Mais informações:

root@spare:/tmp/scripts# apt-cache policy ldap-auth-client
ldap-auth-client:
  Installed: (none)
  Candidate: 0.5.3
  Version table:
    0.5.3.0
       500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
    
por Draconis 16.10.2014 / 16:54

2 respostas

1

A execução do script pelo dos2unix antes de executá-lo fez com que ele funcionasse corretamente. Eu estou supondo que o apt-get estava lendo o extra no final da linha como parte do nome do pacote, e, assim, procurando ldap-auth-client (que não existe) em vez de ldap-auth -cliente (o que faz).

    
por 16.10.2014 / 18:02
0

Tente executar o seguinte comando

apt-get update         

antes de executar o comando apt-get install

Certifique-se também de que os URLs em /etc/apt/sources.list estejam disponíveis.

    
por 28.07.2015 / 14:39