我做了一个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.*
包含字符串的所有包(及其依赖项) 。这是来自,位于第 110 行的某处:package
man apt-get
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
匹配“交流电“,”美国广播公司“,”艾比克" 等[xyz]*
匹配 "", "X“,”是“,”是“,”陣陣“,”韋克斯“,”討厭" 等等。\(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 时才安装此软件包。