
我注意到我安裝了幾個不需要的語言環境,例如firefox-locale-
.我只需要一種語言環境。
如何刪除所有其餘的?
答案1
首先鍵入locale
命令以列印出目前的區域設定配置。此外,您也可以用來locale -a
顯示所有可用區域設定的清單。
清理未使用的區域設置
安裝localepurge
以刪除任何不需要的語言,同時選擇您想要保留的語言。請注意,此方法不會變更系統上的區域設定。它只會清除您未選擇的區域設定。使用風險自負。
sudo apt-get install localepurge
之後,您可以重新啟動或嘗試運行 source /etc/default/locale
。
要重新配置它,只需在終端機中輸入以下內容:
sudo dpkg-reconfigure localepurge
其他方式在這裡回答是為了
sudo locale-gen --purge <locales YOU WANT TO KEEP>
參考
答案2
除非您需要一直切換到各種語言環境,否則您可以卸載未使用的語言環境並釋放系統中的一些儲存空間。
透過終端安裝 Localepurge:
sudo apt-get install localepurge
安裝完成後,它將從系統中刪除所有不需要的區域設定檔。
答案3
筆記:下面的一些指令需要 root 權限,請考慮使用sudo
.
基本訊息
根據man locale-gen
,區域設定在多個文件中設定。
/etc/locale.gen
主設定檔的格式很簡單:每一行不為空且不以 # 開頭的行都被視為要建置的語言環境定義。
/var/lib/locales/supported.d/
包含語言包提供的 locale.gen 片段的目錄。不要手動編輯它們,它們將在軟體包升級時被覆蓋。
語言環境被編譯(產生)到單一檔案。
/usr/lib/locale/locale-archive
通常的預設區域設定存檔位置。
有關區域設置的全面詳細信息拱門維基。
檢查語言環境和語言環境
若要列出可用(已知)區域設置,請執行以下任意命令(輸出略有差異)。
locale -a
localectl list-locales
若要檢查(已)產生的區域設置,請執行下列命令。
localedef --list-archive
若要檢查目前使用的區域設置,請執行以下任意命令(輸出略有差異)。
locale
localectl
設定和產生(新)語言環境
區域設置通常透過取消註解行來設置/etc/locale.gen
,之後locale-gen
需要運行。
nano /etc/locale.gen # uncomment desired lines (locales)
locale-gen
這將為 中和 下的/usr/lib/locale/locale-archive
每個未註釋的行編譯(生成)語言環境,無論它們之前是否已編譯。/etc/locale.gen
/var/lib/locales/supported.d/
或者,命令
locale-gen <locale>
將在產生所需的語言環境時取消註解對應的行locale-gen
,並且僅產生這一行。
注意: 的實作locale-gen
取決於發行版。例如,上面的命令在 Ubuntu/Debian 中有效,但在 ArchLinux 中無效。
刪除語言環境
發出 時locale-gen
,已編譯的檔案將被刪除,並重新產生/etc/locale.gen
及其下的所有語言環境。/usr/lib/locale/locale-archive
此命令locale-gen --purge <locale>
不執行修飾符建議的操作,而是執行相反的操作:它刪除除指示的區域設定之外的所有已編譯區域設定。為了確保在locale-gen
發出或執行更新時僅產生特定區域設置,必須考慮這/etc/locale.gen
兩者。/usr/lib/locale/locale-archive
若要刪除 中的語言環境/etc/locale.gen
,只需註解所需的行並使用 重新產生語言環境locale-gen
。
刪除下面的區域設定/var/lib/locales/supported.d/
比較棘手。由於任何檔案都/var/lib/locales/supported.d/<code>
依賴 package language-pack-<code>-base
,因此當後者更新時,前者的任何變更都會恢復。要解決此問題,只需將更新文件的包保存在/var/lib/locales/supported.d/
.在 Ubuntu/Debian 中實現此目的的命令如下。
apt-mark language-pack-<code>-base
若要更新保留的包,您必須取消標記它或簡單地--ignore-hold
。
解決方法。防止更改的更具侵入性但通用的解決方案/var/lib/locales/supported.d/
是使用以下命令在其中設定文件“不可變 (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>