
我做了一個sudo apt-get remove ruby*
,然後我看到一些 grub 軟體包也被刪除了,所以我去安裝了那些日誌顯示已刪除的軟體包
/sda
我在安裝回來時將 grub 設定為在我的(通常不是任何數字)上工作。
應該一切都好,還是我應該擔心我的系統併計劃安裝/重新配置更多的 grub。
而且,為什麼會發生這種情況?
答案1
如果您不確切知道自己在做什麼,則不應使用:
sudo apt-get remove package.*
# ⤷ or any other character in the place of dot
因為這可能會刪除意外的套件並導致比它解決的問題更多的問題。將符合名稱中package.*
包含該字串的所有套件(及其依賴項) 。package
這是來自man apt-get
,第 110 行的某個地方:
If no package matches the given expression and the expression contains one of '.', '?' or '*' then it is assumed to be a POSIX regular expression, and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so 'lo.*' matches 'how-lo' and 'lowest'. If this is undesired, anchor the regular expression with a '^' or '$' character, or create a more specific regular expression.
這是來自正規表示式/POSIX 基本正規表示式維基教科書:
*
匹配前面的元素零次或多次。例如,ab*c
匹配“交流電“,”ABC“,”阿伯克", 等[xyz]*
匹配 "", "X“,”y“,”z“,”zx“,”茲克斯“,”XYZY”,等等。\(ab\)*
匹配“”,“ab“,”阿巴布“,”阿巴巴布“, 等等。
無論如何,如果你真的想運行類似的東西sudo apt-get remove package.*
(或sudo apt-get remove packagey*
,或sudo apt-get remove packagec*
- 在這種情況下都是相同的),首先使用-s
( --simulate
) 選項來運行它,看看它會做什麼(請參閱 參考資料man apt-get
以取得更多資訊)。
現在,我認為您可以透過以下兩個步驟解決您的問題:
僅刪除
ruby
:sudo apt-get remove ruby
或者,如果您想要刪除名稱以以下開頭的所有套件
ruby
:sudo apt-get remove ^ruby
但最好先模擬一下:
apt-get -s remove ^ruby
答案2
apt-get 使用正規表示式,這表示ruby*
選擇包含以下內容的所有套件擦以他們的名義。刪除所有以以下開頭的套件的正確方法紅寶石是:
apt-get remove ^ruby
答案3
在終端機上嘗試這個命令,
sudo grub-install /dev/sda
它將在您的磁碟上重新安裝 grub2。
如果您想要設定 grub,請安裝軟體包grub-pc
。grub-pc
sudo apt-get install grub-pc
筆記:只有在您在傳統模式下安裝 Ubuntu 時才安裝此軟體套件。