Linux удалить лишние локали

How to remove system locales

How to remove system locales, as oppose to package locales as asked in How to remove unnecessary locales?? I’m getting the following errors recently:

locale: Cannot set LC_ALL to default locale: No such file or directory 
$ grep -r en /var/lib/locales/supported.d/* /var/lib/locales/supported.d/local: en_US ISO-8859-1 /var/lib/locales/supported.d/local: en_US.UTF-8 UTF-8 $ locale -a | grep en en_US en_US.iso88591 en_US.utf8 
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "", LC_ALL = (unset), LC_MEASUREMENT = "en", LC_PAPER = "en", LC_MONETARY = "en", LC_NAME = "en", LC_ADDRESS = "en", LC_NUMERIC = "en", LC_TELEPHONE = "en", LC_IDENTIFICATION = "en", LC_TIME = "en", LANG = "C" 
% locale-gen en Generating locales (this might take a while). en_AG.UTF-8. done en_AU.UTF-8. done en_BW.UTF-8. done en_CA.UTF-8. done en_DK.UTF-8. ^C 

I don’t want any of above locales (only en_US ), but now I can’t get rid of them — I followed the steps in https://serverfault.com/questions/394610/remove-a-locale-in-ubuntu But when it comes to the last step, I’m still getting:

% locale-gen Generating locales (this might take a while). en_AG.UTF-8. done en_AU.UTF-8. done en_BW.UTF-8. done en_CA.UTF-8. done en_DK.UTF-8. ^C 

How to remove all above locales and keep only en_US ? Conclusion & Supplement Thanks to Gunnar’s answer, it is indeed caused by entries in /etc/locale.gen , for those extra locales. Just FTR, this is what locale-gen en has changed in /etc/locale.gen :

$ sed '/^#/d; /en/p;' /etc/locale.gen en_AG UTF-8 en_AG UTF-8 en_AU.UTF-8 UTF-8 en_AU.UTF-8 UTF-8 en_BW.UTF-8 UTF-8 en_BW.UTF-8 UTF-8 en_CA.UTF-8 UTF-8 en_CA.UTF-8 UTF-8 en_DK.UTF-8 UTF-8 en_DK.UTF-8 UTF-8 en_GB.UTF-8 UTF-8 en_GB.UTF-8 UTF-8 en_HK.UTF-8 UTF-8 en_HK.UTF-8 UTF-8 en_IE.UTF-8 UTF-8 en_IE.UTF-8 UTF-8 en_IL UTF-8 en_IL UTF-8 en_IN UTF-8 en_IN UTF-8 en_NG UTF-8 en_NG UTF-8 en_NZ.UTF-8 UTF-8 en_NZ.UTF-8 UTF-8 en_PH.UTF-8 UTF-8 en_PH.UTF-8 UTF-8 en_SC.UTF-8 UTF-8 en_SC.UTF-8 UTF-8 en_SG.UTF-8 UTF-8 en_SG.UTF-8 UTF-8 en_US.UTF-8 UTF-8 en_US.UTF-8 UTF-8 en_ZA.UTF-8 UTF-8 en_ZA.UTF-8 UTF-8 en_ZM UTF-8 en_ZM UTF-8 en_ZW.UTF-8 UTF-8 en_ZW.UTF-8 UTF-8 

Источник

Читайте также:  Linux print all environments

localepurge удаление лишних локалей

localepurge — программа очистки не используемых локалей, т.е. переводов, манов, справок и прочее на различных языках. Большинство из них не нужны и хранить на компьютере не имеет смысла, особенно в условиях ограниченного объема.

Пакет есть в репозиториях, поэтому установка выглядит так
sudo aptitude install localepurge

Во время установки программа предложит выбрать необходимые локали.

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

Дополнительно настроить можно выполнив
sudo dpkg-reconfigure localepurge

Все настройки хранятся в файле /etc/locale.nopurge Там же можно увидеть выбранные локали. У меня такие
en
en_US
en_US.ISO-8859-15
en_US.UTF-8
ru
ru_RU
ru_RU.CP1251
ru_RU.KOI8-R
ru_RU.UTF-8

Запустить программу можно выполнив
~$ localepurge
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
localepurge: Disk space freed in /usr/share/gnome/help: 0 KiB
localepurge: Disk space freed in /usr/share/omf: 0 KiB
localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB
Total disk space freed by localepurge: 0 KiB

однако этого можно не делать, т.к. программа автоматически будет выполняться при установке/удалении программ.

Я уже запускал localepurge, поэтому сейчас показывает 0 KiB. Ранее удалилось ~177 Мб.

Источник

Как удалить ненужные локали

Я заметил, что у меня установлено несколько ненужных локалей. Мне нужна только одна локаль.

6 ответов

Сначала введите locale Команда для распечатки вашей текущей конфигурации локали. Также вы можете использовать locale -a отобразить список всех доступных локалей.

Очистка неиспользуемых локалей

устанавливать localepurge удалить любые ненужные языки, выбирая те, которые вы хотите сохранить. Обратите внимание, что этот метод не изменит настройки локалей в вашей системе. Это просто очистит локали, которые вы не выбрали. Используйте на свой риск.

$ sudo apt-get install localepurge 

После этого вы можете перезагрузиться или попробовать запустить . /etc/default/locale ,

Чтобы перенастроить это, просто введите следующее в терминале:

$ sudo dpkg-reconfigure localepurge 

Другой способ ответить здесь, чтобы sudo locale-gen —purge

Ссылка

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

Читайте также:  I386 linux gnu install

Установите Localepurge через терминал:

sudo apt-get install localepurge

Как только установка будет завершена, она удалит все файлы локали из вашей системы, которые вам не нужны.

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

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

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

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

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

Локали компилируются (генерируются) в один файл.

Обычное расположение архива локали по умолчанию.

Полная информация о локалях на Arch Wiki.

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

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

locale -a localectl list-locales 

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

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

Установка и генерация (новых) локалей

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

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

Это скомпилирует (сгенерирует) локали для каждой незакомментированной строки в и ниже, независимо от того, были ли они ранее скомпилированы или нет.

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

раскомментирует соответствующую строку при создании нужной локали и только этой.

Примечание. Реализация зависит от дистрибутива. Например, приведенная выше команда действительна в Ubuntu/Debian, но не в ArchLinux.

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

При выдаче скомпилированный архив стирается и все локали в и под регенерируются заново. Команда locale-gen —purge делает не то, что предлагает модификатор, а наоборот: удаляет все скомпилированные локали, кроме указанных. Чтобы убедиться, что при выпуске или обновлении генерируются только определенные локали, /usr/lib/locale/locale-archive должны быть рассмотрены.

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

Удалить локали ниже сложнее. Так как любой файл /var/lib/locales/supported.d/ зависит от пакета language-pack—base , любое изменение первого будет восстановлено при обновлении второго. Чтобы решить эту проблему, просто держите пакеты, которые обновляют файлы, в папке . Команда, которая достигает этого в Ubuntu/Debian, следующая.

Читайте также:  Aktywne dzierzawy DHCP

Чтобы обновить задержанный пакет, вы должны снять с него отметку или просто —ignore-hold .

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

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

Установка локали

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

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

Источник

Удаляем ненужные локали с помощью localepurge

Этот сценарий удаляет файлы с переводами интерфейса и документации к разным программам, включая Gnome и KDE, man-страницы, на языки которые никогда не пригодятся пользователям конкретного компьютера. Таким образом можно освободить до 200 мегабайт. Сценарий запускается автоматически после каждой установки пакетов с помощью apt.

Этот сценарий не поддерживается системой управления пакетами Debian официально, и может повлечь за собой обычно безобидные побочные эффекты (связанные с dpkg-repack, reportbug и т.п.), ответственность за его использование лежит на администраторе (вас).

Удаление неиспользуемых пакетов в Debian GNU/Linux

Для чистки системы от оставшихся после удаления пакетов, неудаленных зависимостей, можно использовать программу deborphan.

По умолчанию deborphan осуществляет поиск неиспользуемых библиотек, но можно указать расширить область охвата на файлы с данными, dev-пакеты и т.п.

Выводим все неиспользуемые библиотеки:

Выводим неиспользуемые dev-пакеты:

deborphan --guess-dev >> /tmp/rm_list.txt

Проверяем /tmp/rm_list.txt на наличие ложных срабатываний, убираем лишнее.

Удаляем неиспользуемые пакеты:

cat /tmp/rm_list.txt | xargs apt-get -y remove purge

Посмотреть все неиспользуемые пакеты, какие удалось найти (в выводе оказалось много нужных пакетов):

Сайт rtfm.wiki использует cookies и трекинг посещений. Продолжая использовать этот сайт, вы соглашаетесь с сохранением файлов cookie на вашем компьютере. Если вы не согласны покиньте сайт или включите Adblock 😎 Окэйси Что такое cookies? 🍪

Источник

Оцените статью
Adblock
detector