Apt / Apt-get / dpkg 不再記錄到 journald
我有一個 systemd 服務,我使用樹莓派 4 上的命令通過 debian 包安裝。在安裝包和執行服務時,
apt
我一直在journalctl -xef
跟踪所有日誌輸出以進行調試。我不確定我是如何做到這一點的,但在今天的某個時間點,
apt
我的包的維護者腳本的日誌輸出和輸出停止出現在日誌中。我確實在我的一個包的維護者腳本中有幾個錯別字,而且我有時會用手指敲擊鍵盤或按下熱鍵,但我找不到任何可能導致問題的特別內容。似乎該日誌也預設為記憶體儲存,這很糟糕,因為我試圖解決這個問題的第一件事就是重新啟動。所以現在我想我什至不能回顧舊的日記條目,看看裡面是否有什麼東西可能表明發生了什麼。我還認為我今天在服務或包中所做的一些更改可能會導致問題,所以我嘗試安裝一個較舊的概念驗證服務/包,但也無法正確寫入日誌。
我試圖找到一種方法來重新安裝或修復
apt/apt-get/dpkg
安裝,但不是很成功。大多數問題都與使用 修復軟體包安裝有關*,*apt
而不是修復apt
自身的安裝。我還嘗試查看是否有一種方法可以配置其日誌的寫入位置,但大多數問題都與執行命令時的apt
重定向有關。stdout/stderr``apt
我對 linux 和上面列出的所有技術都很陌生,所以我不確定如何進一步調試/診斷。
有沒有辦法修復/恢復
apt/apt-get/dpkg
樹莓派上的安裝或配置,或者是我嘗試恢復到出廠預設設置或重新安裝整個作業系統的唯一選擇?更新
今天我知道了
/var/log
目錄。我在這些日誌中沒有發現任何導致此問題的跡象,但似乎問題也延伸到syslog
,messages
,user.log
和daemon.log
(即apt/apt-get
這些也缺少來自包維護者腳本的輸出和來自包維護者腳本的輸出)。我可以看到apt install/upgrade/purge
在這些文件中成功記錄了幾個操作,然後就沒有了。但是,我可以說應該記錄更多條目,因為我的包呼叫systemctl daemon-reload
並且我可以systemd[1]: Reloading
在日誌中看到。從瀏覽來看/var/log/dpkg.log
,似乎這些條目都沒有顯示在 中journald
,所以這似乎仍然沒問題。來自 的日誌/var/log/apt/term.log
肯定是缺失的journald
,但來自/var/log/auth.log
的日誌仍然存在。
這原來是使用者錯誤。
apt
直接從終端執行的日誌從未出現在journald
.有問題的
systemd
服務是自動更新服務。apt
我看到的日誌記錄journald
正在發生,因為自動更新服務正在呼叫apt-get
它,因為它是自動更新服務的子程序,我猜日誌記錄到與其父程序相同的位置(syslog
,daemon.log
等)。