Ubuntu
使用 bash 腳本重新安裝已解除安裝的軟體包以使事情恢復正常
好吧,我創建了一個似乎適用於我的情況的 bash 腳本。在這裡,我安裝了一個隨機小程序來擷取其他錯誤消息並將其保存為“ ls.sh ”文件名。
for package in $(apt remove hello --purge 2>&1 | grep "warning: files list file for package '" | grep -Po "[^'\n ]+'" | grep -Po "[^']+"); do apt-get install --reinstall "$package"; done
要解決這種耗時的大問題:
dpkg: warning: files list file for package 'package-name 1' missing; assuming package has no files currently installed .... .... dpkg: warning: files list file for package 'package-name 2000' missing; assuming package has no files currently installed
每天,要安裝的“軟體包”數量會減少,具體取決於我的網際網路速度以及它的 SSD 還是 HDD。我們都知道,快速的網際網路 + SDD = 更少的時間。但這是我的情況。我有硬碟和 500kbps 的下載速度。
所以每天我都會以這種方式跟踪要安裝的剩餘軟體包的數量,在那裡我讀取了最後一個行號。
現在我的主要問題是:
pranav@inspiron-5548L:~/Documents/command$ sudo /bin/bash ls.sh <no output like it used to show before, but it is running though>
我顯然看不到發生了什麼。沒有任何輸出。這裡無法跟踪要重新安裝的剩餘軟體包,因為我什麼也沒看到。幫我看看。它似乎正在執行,但正在等待重新安裝所有軟體包,然後才說些什麼。
我顯然不明白髮生了什麼。沒有任何輸出。這裡無法跟踪要重新安裝的剩餘軟體包,因為我什麼也沒看到。幫我看看。
這可以從很多方面來理解。據我了解您的問題,您想調試腳本,您的目標是查看腳本執行期間會發生什麼。
這可以通過使用
-x
開關呼叫 bash 來實現:sudo /bin/bash -x ls.sh
來自
man bash
:-x 在執行時列印命令及其參數。
錯誤地,我刪除了與 dpkg 相關的文件,這些文件破壞了一切。所以最後,我備份了所有重要文件並重新安裝了整個發行版。重新安裝所有軟體包將花費大量時間。更不用說,即使確實設法重新安裝了所有軟體包,也不能保證事情會按照原來的方式進行。