Как автоматизировать 'dpkg-переконфигурировать локали' с помощью одной команды?
7 ответов
Одна команда:
sudo update-locale LANG = en_HK.UTF-8
Легкий день :)
То, что сработало для меня, было сочетанием ответов @DevRobot и @Gunnar Hjalmarsson (от имени root). РЕДАКТИРОВАТЬ: Добавлены некоторые улучшения, чтобы избежать раздражающих ошибок:
update-locale "LANG=en_HK.UTF-8"
locale-gen --purge "en_HK.UTF-8"
dpkg-reconfigure --frontend noninteractive locales
Другая возможность (которая работает еще лучше) через debconf-utils коммунальные услуги и debconf-set-selections (запустить от имени root):
echo "locales locales/default_environment_locale select en_HK.UTF-8" | debconf-set-selections
echo "locales locales/locales_to_be_generated multiselect en_HK.UTF-8 UTF-8" | debconf-set-selections
rm "/etc/locale.gen"
dpkg-reconfigure --frontend noninteractive locales
Надеюсь, это поможет.
Я бы посоветовал:
echo "en_HK.UTF-8" | sudo tee -a /etc/locale.gen
sudo locale-gen
или если это обязательно должна быть "одна команда":
echo "en_HK.UTF-8" | sudo tee -a /etc/locale.gen; sudo locale-gen
Для объяснения см. Мой ответ на /questions/383825/locale-gen-ne-rabotaet/844328#844328.
Если вы хотите сгенерировать одну локаль, этого теоретически должно быть достаточно:
echo "locales locales/locales_to_be_generated multiselect en_HK.UTF-8 UTF-8" | debconf-set-selections
dpkg-reconfigure --frontend noninteractive locales
Однако на практике dpkg-reconfigure не сможет сгенерировать локаль в Ubuntu 20.04. Чтобы обойти это, вам нужна дополнительная команда:
echo "locales locales/locales_to_be_generated multiselect en_HK.UTF-8 UTF-8" | debconf-set-selections
rm /etc/locale.gen
dpkg-reconfigure --frontend noninteractive locales
Эта суть имела решение для меня:
sudo sed -i '/^#.* en_US.* /s/^#//' /etc/locale.gen
sudo locale-gen
Я бы наверное запустил
sudo locale-gen --purge
Это восстанавливает все локали для ваших установленных языков.
sudo EDITOR='sed -Ei "
s|locales/locales_to_be_generated=.+|locales/locales_to_be_generated=\"en_GB.UTF-8 UTF-8\"|;
s|locales/default_environment_locale=.+|locales/default_environment_locale=\"en_GB.UTF-8\"|
"' dpkg-reconfigure -f editor locales
Связанный ответ: Как установить локаль неинтерактивно в Debian/Ubuntu?
