gitlabを「自動更新」しようとしています。アップデートを確認し、アップデートが可能なときにインストールし、結果を電子メールで送信するシェルスクリプトを作成しました。 bashでrootでスクリプトを起動すると、これはすべて端末で完全に機能します。だからタスクをスケジュールcrontab -e
し、毎日実行するように設定しました。
非常に重要な内容がない個人用ホームのgitlabサーバーになってはいけません。実際の本番環境では絶対にこのようなことはしません。
更新プロセスの出力はログファイルにパイプされます。 cronjobが実行されるたびに失敗します。ログファイルの出力は次のとおりです。
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
gitlab-ce
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 357 MB of archives.
After this operation, 2,778 kB of additional disk space will be used.
Get:1 https://packages.gitlab.com/gitlab/gitlab-ce/debian stretch/main amd64 gitlab-ce amd64 9.3.8-ce.0 [357 MB]
apt-listchanges: Reading changelogs...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:
Fetched 357 MB in 17s (20.3 MB/s)
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
dpkg: error: 2 expected programs not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)
正確に何が起こっているのでしょうか?私はそれがものなどを見つけることができないことを知っていましたが、cronjobはroot
ルートとして追加したように実行する必要がありますか?
一部の確認、結果のメール送信などに加えて、シェルスクリプトはデフォルトで次のように実行されます。
apt-get install --only-upgrade gitlab-ce &>> $LOGFILE
どうすれば解決できますか?