
Ich habe ein sudo apt-get remove ruby*
und dann sah ich, dass einige Grub-Pakete ebenfalls entfernt wurden, also habe ich diese Pakete wieder installiert, deren Entfernung laut Protokoll entfernt wurde
Ich habe Grub so eingestellt, dass es auf meinem /sda
(im Allgemeinen, nicht auf irgendeiner Zahl) funktioniert, als ich es wieder installiert habe.
Sollte alles in Ordnung sein oder muss ich um mein System fürchten und planen, mehr Grub zu installieren/neu zu konfigurieren?
Und warum ist das passiert?
Antwort1
Wenn Sie nicht genau wissen, was Sie tun, sollten Sie Folgendes nicht verwenden:
sudo apt-get remove package.*
# ⤷ or any other character in the place of dot
da dies unbeabsichtigte Pakete löschen und mehr Probleme verursachen kann, als es löst. Das package.*
wird alle Pakete (und ihre Abhängigkeiten) abgleichen, die die Zeichenfolge package
in ihrem Namen enthalten. Dies ist von man apt-get
, irgendwo in Zeile 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.
Und das ist vonReguläre Ausdrücke/POSIX Grundlegende reguläre AusdrückeWikibooks:
*
Stimmt null oder mehrmals mit dem vorhergehenden Element überein. Stimmt beispielsweiseab*c
mit „ überein“Wechselstrom", "ABC", "abbb", usw.[xyz]*
entspricht "", "X", "j", "z", "zx", "zyx", "xyzzy", und so weiter.\(ab\)*
entspricht "", "ab", "abab", "Abonnieren", und so weiter.
sudo apt-get remove package.*
Wenn Sie jedoch wirklich etwas wie (oder sudo apt-get remove packagey*
, oder sudo apt-get remove packagec*
- in diesem Fall sind alle gleich) ausführen möchten ,Führen Sie es zuerst mit der Option -s
( --simulate
) aus, um genau zu sehen, was es tut( man apt-get
weitere Informationen finden Sie unter).
Ich denke, dass Sie Ihr Problem mit den folgenden zwei Schritten lösen können:
Nur entfernen
ruby
:sudo apt-get remove ruby
Oder wenn Sie alle Pakete entfernen möchten, deren Name mit folgendem beginnt
ruby
:sudo apt-get remove ^ruby
Besser ist jedoch, zunächst mit folgendem zu simulieren:
apt-get -s remove ^ruby
Antwort2
Apt-get arbeitet mit regulären Ausdrücken, d. h. es ruby*
wählt alle Pakete aus, die enthaltenreibenin ihrem Namen. Der richtige Weg, alle Pakete zu entfernen, die mit beginnenRubinIst:
apt-get remove ^ruby
Antwort3
Versuchen Sie diesen Befehl im Terminal.
sudo grub-install /dev/sda
Dadurch wird Grub2 auf Ihrer Festplatte neu installiert.
Wenn Sie Ihr Grub konfigurieren möchten, installieren Sie grub-pc
das Paket. Versuchen Sie den folgenden Befehl, um grub-pc
das Paket zu installieren.
sudo apt-get install grub-pc
Notiz:Installieren Sie dieses Paket nur, wenn Sie Ubuntu im Legacy-Modus installiert haben.