A execução dos seguintes comandos na linha de comando funciona bem
$sudo apt-get update
$sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
linux-libc-dev
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/864kB of archives.
After this operation, 0B of additional disk space will be used.
Do you want to continue [Y/n]?
Mas executando este script usando cron ...
#!/bin/bash
source /home/adm/.profile
apt-get update >> /home/adm/update_detailed.log
apt-get --yes upgrade >> /home/adm/update_detailed.log
echo "Update_successful $(date)" >> /home/adm/update.log
produz a seguinte saída:
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
linux-libc-dev
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/864kB of archives.
After this operation, 0B of additional disk space will be used.
Por que o pacote linux-libc-dev não é instalado a partir do script bash, mas pode ser instalado a partir da linha de comando? Observe que o script está configurado para ser executado como o superusuário.
O script foi verificado em relação a [1] e fontes on-line.
As perguntas que li no serverfault mencionaram atualizações autônomas, mas quero entender esse problema e não usar uma alternativa.
Em [1] eu li que esse tipo de problema pode ser causado pelas variáveis de ambiente. É por isso que adicionei a linha /home/adm/.profile de origem ao script. Não fez diferença.
[1] Manual de administração do sistema Unix e Linux, 4ed, 0- 13-148005-7