як мені займатися видаленням усіх мовних пакетів, які мені не потрібні


12

Я щойно помітив, що в /usr/share/helpмене є файли довідки ubuntu на 70 різних мовах. Я розмовляю лише 2, і обчислюю лише одне. Я також зауважив, що він повний зірваних символічних посилань на / usr / share / help-langpack.

Я хочу просто хочу позбутися всіх мов, які мені не потрібні. Як я можу це зробити, не будучи rm -rщасливим? Я бажаю шукати спосіб це зробити, не встановлюючи жодних нових пакетів, оскільки моя головна мета - позбутися зайвих речей на моїй машині. Я хотів би знайти спосіб зробити це бажано за допомогою dpkg або apt.


1
Ці посилання є частиною налаштування з метою уникнути встановлення довідкових файлів на всіх мовах на всіх машинах. Так, так, є досить багато "ламаних" посилань, але це краще, ніж файли довідки, правда? Моя порада: Не турбуйтеся. Символьні посилання належать до різних пакетів, і якщо ви видалите їх, вони знову з’являться наступного разу, коли відповідний пакет буде оновлений.
Gunnar Hjalmarsson

Відповіді:


11


Ви можете перевірити, які локалі створюються та налаштовані у вашій системі за допомогою команди locale:

  • locale ... список поточної конфігурації локалі
  • locale -a ... перелічує всі локалі, створені у вашій системі
  • locale -a -v ... перераховує всі локалі та показує корисну додаткову інформацію (наприклад, імена каталогів, які містять файли даних про локальну інформацію)

Остання команда зверху дозволяє вам побачити, що всі створені локалі розташовані в /usr/lib/locale/, ви можете видалити будь-який з них, якщо цього не потрібно. Кожен пакет інформації про локали - це каталог, що містить текстові файли та інші каталоги.

Усі локалі, які потрібно підтримувати вашою системою, перелічені в текстових файлах у /var/lib/locales/supported.d/. Ці файли мають два стовпці, мовний тег та мапу символів.

Я хочу, щоб моя система знала лише американську англійську, тому в мене є лише один файл, званий en, який містить лише один рядок:

en_US UTF-8

Повідомлення про
помилки Якщо під час видачі команди locale відображаються повідомлення про помилки, наприклад:

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

переконайтесь, що файл /etc/default/localeіснує та має відповідний вміст, наприклад:

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

Позбавтеся від непотрібних даних локалів - крок за кроком

Тепер ми знаємо всі необхідні деталі, щоб розпочати роботу з очищенням локальної інформації нашої системи:

  1. Відредагуйте файли локалів у /var/lib/locales/supported.d/та видаліть усі непотрібні локалі (одна мова на рядок)
  2. Створення та редагування /etc/default/locale(див. Приклад вище)
  3. Видалити всі згенеровані дані локалів: rm -rfv /usr/lib/locale/*
  4. Повторно генеруйте нові локалі: locale-gen

Це все! Перезавантажте машину, щоб зміни вступили в силу. Потім запустіть один або кілька прикладів команд локалі зверху, щоб переконатися, що результат є таким, як очікувалося.

~# 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 | bug-glibc-locales@gnu.org
 language | English
territory | USA
 revision | 1.0
     date | 2000-06-24
  codeset | UTF-8

Існує пакет для Debian / Ubuntu , який може подбати про видаленні локалей і локалях пов'язаних файлів (наприклад , сторінки людини): localepurge. Ви можете встановити / запустити його видачу:

sudo apt-get install localepurge

Після встановлення вам слід виконати таке:

dpkg --configure localepurge

щоб переконатися, що ваші мовні налаштування встановлені правильно.

щоб запустити його вручну після встановлення (хоча вам не потрібно, оскільки він повинен працювати після кожного dpkgзапуску автоматично), ви можете просто зробити:

sudo localepurge

Прочитайте сторінку man, перш ніж використовувати її. Якщо ви можете зробити свої речі без цього, можливо, безпечніше відпустити їх.

з цього форуму

ref:
1. LocaleConf в офіційній документації
2. Linux man page
3. Locale on wikipeadia
4. man localepurge


Дякую за пропозицію, якщо я не можу знайти спосіб зробити це з тим, що вже встановлено на моєму комп’ютері, я обов'язково цим скористаюся.
blanket_cat

1
@knotech Чому ви просто не встановите його, запустіть та видаліть його. Не впевнений, чому ви задумалися про встановлення пакету.
Брайан Грехем

1
@knotech див. офіційну документацію help.ubuntu.com/community/LocaleConf .
αғsnιη

Вибачте, але я не думаю, що localpurge жодним чином не відповідає на питання ОП.
Gunnar Hjalmarsson

1
ОП запитала про мовні пакети ... Але якщо припустити, що він також зацікавлений у видаленні зайвих локалів, навіщо встановлювати localpurge? Чому б не просто locale-gen --purge?
Gunnar Hjalmarsson

3

Що стосується власне встановлених мов, перейдіть в Параметри системи -> Language Support і натисніть Install / Remove Languages ... кнопку. Потім зніміть прапорці з потрібних вам мов.

Що стосується символьних посилань /usr/share/help, будь ласка, дивіться мій коментар до вашого питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.