Ubuntu

使用 bash 腳本重新安裝已解除安裝的軟體包以使事情恢復正常

  • September 18, 2021

好吧,我創建了一個似乎適用於我的情況的 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 相關的文件,這些文件破壞了一切。所以最後,我備份了所有重要文件並重新安裝了整個發行版。重新安裝所有軟體包將花費大量時間。更不用說,即使確實設法重新安裝了所有軟體包,也不能保證事情會按照原來的方式進行。

引用自:https://serverfault.com/questions/976935