私はデスクトップ環境なしでDebian 9.7.0で作業しています。私のパッケージを更新するスクリプトを作成し、それを/ etc / crontabに追加して起動時に実行するようにしました。スクリプトは次のとおりです。
#!/bin/bash
apt-get update && apt-get upgrade
手動で実行するとうまくいきますが、起動時にapt-getはDebian URLを取得しません。ログは次のとおりです。
Err:1 http:///ftp.be.debian.org/debian stretch InRelease
Temporary failure resolving 'ftp.be.debian.org'
Err:2 http://ftp.be.debian.org/debian stretch-updates InRelease
Temporary failure resolving 'ftp.be.debian.org'
Err:3 http://security.debian.org/debian-security stretch/updates InRelease
Temporary failure resolving 'security.debian.org'
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
私の記憶が正しい場合、apt-getはDebianサーバーにアクセスできませんか?
編集:また、/etc/apt/sources.listでサーバーを変更しようとしましたが、まだ同じエラーが発生します。
どのようにこれが起こり、どのように処理するのかを知っている人はいますか?
回答が見つかりませんので、再投稿ではありません。良い一日になってください。
答え1
このスクリプトは、ネットワークが起動する前に実行されるようです。
起動時に実行されるサービスを使用することをお勧めしますsystemd
。これにより、ネットワークの起動後に実行を要求できます。
たとえば、
# /etc/systemd/system/update.service
[Unit]
Description=Apt Update & Upgrade
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
KillMode=process
ExecStart=/usr/local/bin/update-script
[Install]
WantedBy=multi-user.target
次に、次を実行します。
systemctl daemon-reload
systemctl enable update.service
または、このunattended-upgrades
パッケージを使用してこれらすべてを実行できます。