O Cron executa comandos de um shell especial, separado do usuário ou dos shells de raiz. Este shell não tem acesso às mesmas variáveis PATH que os usuários. Portanto, ao executar um script como uma tarefa cron, há duas opções:
Especifique o caminho completo para cada comando no script (ou seja, caminho completo para o aptitude - o cron não sabe onde procurar para encontrar "apt-get")
Pouco truque que eu uso - ao escrever a linha de trabalho cron, mesmo no crontab ROOT, anexar sudo antes do caminho do script. Isso irá enganar o cron na execução do script a partir de um shell raiz em vez do shell cron, que lhe dará acesso a todas as variáveis PATH do root.