Удалить локаль в Ubuntu

Я случайно добавил локаль, например, sudo locale-gen zh_TW

например, язык -a

zh_TW

Но как это убрать?

5 ответов

Решение

Я думаю, что вы можете сделать это путем редактирования /var/lib/locales/supported.d/local и удаление этой локали. Тогда беги locale-gen восстановить скомпилированные локали.

Вы также можете перенастроить пакет locales, используя dpkg-reconfigure locales,

Какие локали установлены на моей машине?

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

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

Последняя команда сверху показывает, что все сгенерированные локали находятся в /usr/lib/locale/, и вы можете удалить любой из них, если в этом нет необходимости. Каждый пакет информации о локали представляет собой каталог, содержащий текстовые файлы и другие каталоги.

-

Поддерживаемые локали

Все локали, которые вы хотите, чтобы ваша система поддерживала, перечислены в текстовых файлах в /var/lib/locales/supported.d/, Эти файлы имеют два столбца, языковой тег и карту символов.

Я хочу, чтобы моя система знала только американский английский, поэтому у меня есть только один файл, который называется en, который содержит только одну строку:

en_US UTF-8

-

Сообщения об ошибках

Если при выдаче команды локали отображаются сообщения об ошибках, например

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, чтобы убедиться, что результат соответствует ожидаемому.

-

Ссылка:

https://www.linuxquestions.org/questions/blog/bittner-195120/remove-unwanted-locales-on-ubuntu-debian-3281/

Примечание: для некоторых из приведенных ниже команд требуются привилегии root, рассмотрите возможность использования sudo.

Базовая информация

В соответствии с man locale-gen, локали задаются в нескольких файлах.

/etc/locale.gen

Основной файл конфигурации, имеющий простой формат: каждая строка, которая не пуста и не начинается с символа #, рассматривается как определение локали, которое необходимо создать.

/var/lib/locales/supported.d/

Каталог, содержащий фрагменты кода locale.gen, предоставляемые пакетами языковых пакетов. Не редактируйте их вручную, они будут перезаписаны при обновлении пакета.

Подробные сведения о местах на Arch Wiki.

Проверка локалей и локали

Чтобы проверить (уже) сгенерированные языковые стандарты, выполните любую из следующих команд (с небольшими отличиями в выводе).

locale -a
localedef --list-archive
localectl list-locales

Чтобы проверить текущий языковой стандарт, выполните любую из следующих команд (с небольшими отличиями в выводе).

locale
localectl

Установка и создание (новых) локалей

Локали обычно устанавливаются раскомментированием строк в /etc/locale.gen, после чего запускается locale-gen требуется для.

nano /etc/locale.gen # uncomment desired lines (locales)
locale-gen

Это создаст файлы локалей для каждой строки без комментариев в /etc/locale.gen (и под /var/lib/locales/supported.d/), независимо от того, были ли они созданы ранее или нет.

В качестве альтернативы команда

locale-gen <locale>

раскомментирует соответствующую строку в locale-gen при создании желаемого языкового стандарта и только этого.

Удаление локалей

Чтобы удалить локали в /etc/locale.gen, просто закомментируйте нужные строки и заново создайте языковые стандарты, используя locale-gen. Команда locale-gen --purge <locale> не делает то, что предлагает модификатор.

Чтобы удалить локали под /var/lib/locales/supported.d/сложнее. Поскольку любой файл /var/lib/locales/supported.d/<code> зависит от пакета language-pack-<code>-base, любые изменения в первом будут восстановлены при обновлении последнего.

Обходной путь. Чтобы предотвратить изменения под /var/lib/locales/supported.d/, установите в нем файлы с атрибутом "immutable (i)". Поэтому вместо удаления файлов очистите их. Например:

cd /var/lib/locales/supported.d/
rm <code> && touch <code> # <code> has been emptied
lsattr <code>    # regular attributes
chattr +i <code> # adding (+) immutable
lsattr <code>    # checking attributes

Установка языкового стандарта

Установка и создание языковых стандартов не устанавливает языковой стандарт системы. Этого можно добиться с помощью любой из следующих команд.

echo LANG=<code> | sudo tee /etc/locale.conf # reboot (might be ignored in Ubuntu)
localectl set-locale LANG=<code>

Я не уверен, почему большинство дистрибутивов и пользователей не знают о localepurge .

Для систем на основе Debian, если он доступен

      apt-get install localepurge

Со страницы руководства:

localepurge — это небольшой скрипт для восстановления дискового пространства, потраченного на ненужные файлы локали и локализованные справочные страницы. Он будет автоматически вызван dpkg после завершения любого запуска установки apt.

Вам необходимо определить имена каталогов локали, которые вы хотите предотвратить от удаления, после каждого запуска установки apt в файле конфигурации /etc/locale.nopurge. Если localepurge не настроен должным образом, файлы локализации системы вообще не будут затронуты.

Удаление повлияет на содержимое следующих каталогов:

       - /usr/share/doc/kde/HTML
 - /usr/share/gnome/help
 - /usr/share/locale
 - /usr/share/man
 - /usr/share/omf
 - /usr/share/tcltk
 - /usr/share/cups/{templates,locale,doc-root}
 - /usr/share/calendar
 - /usr/share/aptitude
 - /usr/share/help/<domain>/HELP_CONTENT(files&dirs)
 - /usr/share/vim/vim*/lang

Файлы локализации, которые вам действительно нужны и которые вы хотите сохранить в своей системе, можно легко настроить, выполнив следующую команду:

      dpkg-reconfigure localepurge

Вывод: этот скрипт позаботится о любых нежелательных локалях в данный момент и в будущем.

Другие вопросы по тегам