Wie entferne ich alle Sprachpakete, die ich nicht benötige?

11

Mir ist gerade aufgefallen, dass /usr/share/helpich in Ubuntu Hilfedateien in 70 verschiedenen Sprachen habe. Ich spreche nur 2 und rechne nur wirklich in einem. Mir ist auch aufgefallen, dass es voller defekter symbolischer Links zu / usr / share / help-langpack ist.

Ich möchte einfach alle Sprachen loswerden, die ich nicht brauche. Wie kann ich das tun, ohne rm -rglücklich zu werden? Ich suche vorzugsweise nach einer Möglichkeit, dies zu tun, ohne neue Pakete zu installieren, da mein Hauptziel darin besteht, überschüssiges Material auf meinem Computer zu entfernen. Ich würde gerne einen Weg finden, dies vorzugsweise mit dpkg oder apt zu tun.

blanket_cat
quelle
1
Diese Symlinks sind Teil eines Setups mit dem Ziel, zu vermeiden , dass Hilfedateien in allen Sprachen auf allen Computern installiert werden. Also ja, es gibt einige "kaputte" Symlinks, aber das ist besser als die Hilfedateien, oder? Mein Rat: Mach dir keine Sorgen. Die Symlinks gehören zu verschiedenen Paketen. Wenn Sie sie entfernen, werden sie beim nächsten Aktualisieren des jeweiligen Pakets erneut angezeigt.
Gunnar Hjalmarsson

Antworten:

10


Mit dem Befehl locale können Sie überprüfen, welche Gebietsschemas auf Ihrem System generiert und konfiguriert werden:

  • Gebietsschema ... listet die aktuelle Gebietsschemakonfiguration auf
  • locale -a ... listet alle Gebietsschemas auf, die auf Ihrem System generiert wurden
  • locale -a -v ... listet alle Gebietsschemas auf und zeigt nützliche zusätzliche Informationen an (z. B. Verzeichnisnamen, die die Datendateien mit den Gebietsschemainformationen enthalten).

Mit dem letzten Befehl von oben sehen Sie, dass sich alle generierten Gebietsschemas in befinden /usr/lib/locale/. Sie können sie entfernen, wenn sie nicht benötigt werden. Jedes Paket mit Gebietsschemainformationen ist ein Verzeichnis, das Textdateien und andere Verzeichnisse enthält.

Alle Gebietsschemas, die Ihr System unterstützen soll, werden in den Textdateien in aufgelistet /var/lib/locales/supported.d/. Diese Dateien haben zwei Spalten, ein Sprach-Tag und eine Zeichentabelle.

Ich möchte, dass mein System nur US-Englisch kann, daher habe ich dort nur eine Datei namens en, die nur eine einzige Zeile enthält:

en_US UTF-8

Fehlermeldungen
Wenn beim Ausgeben des Befehls locale Fehlermeldungen angezeigt werden, z.

locale: Cannot set LC_ALL to default locale: No such file or directory

Stellen Sie sicher, dass die Datei /etc/default/localevorhanden ist und den richtigen Inhalt hat, z.

LANG="en_US"
LANGUAGE="en_US:en"

Nicht benötigte Gebietsschemadaten entfernen - Schritt für Schritt

Jetzt kennen wir alle notwendigen Details, um mit der Bereinigung der Gebietsschemainformationen unseres Systems zu beginnen:

  1. Bearbeiten Sie die Gebietsschemadatei (en) in /var/lib/locales/supported.d/und entfernen Sie alle nicht benötigten Gebietsschemas (ein Gebietsschema pro Zeile).
  2. Erstellen und bearbeiten /etc/default/locale(siehe oben für ein Beispiel)
  3. Löschen Sie alle generierten Gebietsschemadaten: rm -rfv /usr/lib/locale/*
  4. Generieren Sie neue Gebietsschemas neu: locale-gen

Das ist alles! Starten Sie Ihren Computer neu, damit Ihre Änderungen wirksam werden. Führen Sie dann eines oder mehrere der Beispielbeispiele für das Gebietsschema von oben aus, um sicherzustellen, dass das Ergebnis den Erwartungen entspricht.

~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
~# 
~# locale -a -v
locale: en_US.utf8      directory: /usr/lib/locale/en_US.utf8
-------------------------------------------------------------------------------
    title | English locale for the USA
   source | Free Software Foundation, Inc.
  address | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
    email | [email protected]
 language | English
territory | USA
 revision | 1.0
     date | 2000-06-24
  codeset | UTF-8

Es gibt ein Paket für Debian / Ubuntu, mit dem sich Gebietsschemas und Gebietsschema-bezogene Dateien (z. B. Manpages) entfernen lassen : localepurge. Sie können es installieren / ausführen, indem Sie Folgendes ausführen:

sudo apt-get install localepurge

Nach der Installation sollten Sie Folgendes ausführen:

dpkg --configure localepurge

um sicherzustellen, dass Ihre Spracheinstellungen korrekt eingestellt sind.

dpkgUm es nach der Installation manuell auszuführen (obwohl Sie es nicht unbedingt benötigen sollten, da es nach jedem automatischen Lauf ausgeführt werden sollte), können Sie einfach Folgendes tun:

sudo localepurge

Lesen Sie jedoch die Manpage, bevor Sie sie verwenden. Wenn Sie Ihre Sachen ohne sie erledigen können, ist es wahrscheinlich sicherer, loszulassen.

aus diesen Foren

Ref:
1. LocaleConf in der offiziellen Dokumentation
2. Linux-Manpage
3. Locale auf Wikipeadia
4. Man Localepurge

αғsнιη
quelle
Vielen Dank für den Vorschlag. Wenn ich mit dem, was bereits auf meinem Computer installiert ist, keine Möglichkeit finde, dies zu tun, werde ich dies definitiv verwenden.
blanket_cat
1
@knotech Warum installieren Sie es nicht einfach, führen es aus und deinstallieren es? Ich bin mir nicht sicher, warum Sie sich über die Installation eines Pakets aufregen.
Brian Graham
1
@knotech siehe offizielle Dokumentation help.ubuntu.com/community/LocaleConf .
αғsнιη
Entschuldigung, aber ich glaube nicht, dass localpurge die Fragen der OP in irgendeiner Weise beantwortet.
Gunnar Hjalmarsson
1
Das OP fragte nach Sprachpaketen ... Aber unter der Annahme, dass er auch redundante Gebietsschemas entfernen möchte, warum sollte localpurge installiert werden? Warum nicht einfach locale-gen --purge?
Gunnar Hjalmarsson
3

Gehen Sie zu den tatsächlich installierten Sprachen zu Systemeinstellungen -> Sprachunterstützung und klicken Sie auf die Schaltfläche Sprachen installieren / entfernen . Deaktivieren Sie dann die Sprachen, die Sie nicht benötigen.

Informationen zu den Symlinks /usr/share/helpfinden Sie in meinem Kommentar zu Ihrer Frage.

Gunnar Hjalmarsson
quelle