我正在尝试按照此网站上的说明进行操作: https://lutris.net/games/touhou-06-embodiment-of-scarlet-devil/ 其中显示“启用 'ja_JP.UTF-8' 和 'en_US.UTF -8' 系统上的语言环境”,它提供了如何在 Arch 中执行此操作的说明 - 我如何在 Ubuntu 中执行此操作?
我发现,在我的家庭服务器上,运行 Ubuntu Server 18.04,我选择了很多语言环境,实际上我不需要。我只想要en_US.UTF-8
and de_DE.UTF-8
,因为整个系统被配置为只使用这些。
所以,首先,我通过运行尝试了“Debian方式” dpkg-reconfigure locales
,然后取消选择了我真正想要的两个之外的所有内容。之后系统会自动重新生成语言环境,但不幸的是,比我选择的要多:
Generating locales (this might take a while)...
de_DE.UTF-8... done
en_AG.UTF-8... done
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IL.UTF-8... done
en_IN.UTF-8... done
en_NG.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... done
en_ZA.UTF-8... done
en_ZM.UTF-8... done
en_ZW.UTF-8... done
然后我尝试直接编辑/etc/locale.gen
,但在那里一切都很好,因为只有我真正想要的两个没有被注释掉,所以它应该可以工作。我已经从上到下多次检查了该文件。
尽管如此,locale-gen
手动运行仍会产生与上述相同的结果。
所以我想知道这是一个错误还是一个功能?该文件是否可能缓存在某处,或者是否有另一个我不知道的配置文件?我已经尝试重新启动系统,但正如预期的那样,这并没有改变任何东西。
我有一个混合区域设置的系统。文本语言设置为英语,数字格式、货币等设置为德语。除了apt之外,这非常有效。apt 命令(apt-get、apt-cache 等)的所有消息和帮助文本始终为德语:
例如:
apt-get --help
apt 1.6.12ubuntu0.1 (amd64)
Aufruf: apt-get [Optionen] befehl
apt-get [Optionen] install|remove paket1 [paket2 ...]
apt-get [Optionen] source paket1 [paket2 ...]
apt-get ist ein Befehlszeilenwerkzeug zum Herunterladen von Paketen (und
Informationen zu diesen Paketen) von authentifizierten Paketquellen sowie
für deren Installation, Aktualisierung und Entfernung zusammen mit ihren
Paketabhängigkeiten.
...
对于我的个人用户帐户和 root 用户,这种行为是相同的。
我的用户帐户的区域设置如下:
LANG=en_US.UTF-8
LANGUAGE=en_US:de
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=de_DE.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=de_DE.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
LC_ALL 没有设置,但即使我明确设置了这个环境变量
export LC_ALL="en_US.UTF-8"
apt 输出的语言不会改变。
哪个语言环境变量实际上会影响 apt 命令?我怎样才能说服 apt 说英语?
我已经安装了 Ubuntu 19.10,语言/区域设置/格式设置为 US/en。一切似乎都正常,除了登录屏幕上的日期时间语言(当我打开笔记本电脑并查看用户/密码记录字段时)。它具有本地语言风格。因此,用户/锁屏的日期时间语言正确拾取,但登录屏幕 - 不。是什么原因,我该如何解决这个问题?
命令输出locale
:
LANG=en_US.UTF-8
LANGUAGE=
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
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
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=en_US.UTF-8
我不知道我做错了什么,但我需要你们的帮助。当我在终端中键入 locale-gen 时,出现错误:
Generating locales (this might take a while)...
en_US.UTF-8...failed to set locale!
[error] cannot open locale definition file `en_GB': No such file or directory
done
Generation complete.
我找到了一个解决方案,我自己想通了。我删除了最后一行 /etc/locale.gen 中的 # 。在我删除之前就像下面一样:
# aa_DJ ISO-8859-1
# aa_DJ.UTF-8 UTF-8
# aa_ER UTF-8
# aa_ER@saaho UTF-8
...
# zu_ZA ISO-8859-1
# zu_ZA.UTF-8 UTF-8
en_US.UTF-8 UTF-8
我像这样更改了最后一行:
# en_US.UTF-8 UTF-8
我不知道我是否做错了什么,但是当我这样做时,错误就解决了。如果我做错了什么,请告诉我。之后我尝试重新配置语言环境,但是当我尝试这样做时出现另一个错误:
$sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "",
LC_ALL = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
当我尝试更改 LC_ALL 时,我又遇到了一个错误:
$export LC_ALL="en_US.UTF-8 UTF-8"
bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
我收到一个错误,但 LC_ALL 发生了变化。我不知道我的语言环境设置发生了什么,但似乎我真的搞砸了。我应该怎么做才能修复所有这些?
KeyRelease event, serial 37, synthetic NO, window 0x2600001,
root 0x269, subw 0x0, time 25839746, (517,242), root:(622,350),
state 0x0, keycode 254 (keysym 0x11f, (no name)), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 37, synthetic NO, window 0x2600001,
root 0x269, subw 0x0, time 25840405, (517,242), root:(622,350),
state 0x0, keycode 255 (keysym 0x15f, (no name)), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 37, synthetic NO, window 0x2600001,
root 0x269, subw 0x0, time 25840514, (517,242), root:(622,350),
state 0x0, keycode 255 (keysym 0x15f, (no name)), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
我在 dex 上使用 Linux。Ubuntu 16.0.4.5 LTS。我只需要一些特殊字符,例如şğİı。我在对 Linux 零知识的情况下对网络进行了一些研究(为期 2 天),但我的最后一站是这里。问题是当我打开时——这是我/usr/share/x11/xkb/symbols/tr
系统上的当前键盘布局——我可以看到 gbreve(ğ)、scedilla(ş) 等。如果我的键被系统识别并显示 0x11f,我还尝试了 ibus 首选项。gbreve(ğ) 的表示是:UTF-16 :0x11f UTF-8 : 0xC4, 0x9F 当我按下它时。另外,当我键入时,我得到了这个:
$ locale -a
C
C.UTF-8
en_US.utf8
POSIX
tr_CY.utf8
tr_TR.utf8
所以..我看到它是不同的 utf8 和 utf-16 但我能做些什么来输入这些字母?我只需要它用于 LibreOffice。
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
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=en_US.UTF-8
$ sudo dpkg-reconfigure keyboard-configuration
[sudo] password for dextop:
grep: /proc/bus/input/devices: Permission denied
grep: /proc/bus/input/devices: Permission denied
Your console font configuration will be updated the next time your system
boots. If you want to update it now, run 'setupcon' from a virtual console.
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
insserv: warning: script 'int_container.sh' missing LSB tags and overrides
insserv: warning: script 'vnc.sh' missing LSB tags and overrides
insserv: warning: script 'init_container.sh' missing LSB tags and overrides
当我键入该命令时,没有像您这样的界面
我选择通用 105 int 并在那里选择语言布局。正如你提到的没有死键,我将 compose 设置为 alt gr 但这没有帮助。
我在以前的 Ubuntu img 设置上修复了 LSB 标签问题。所以问题不在于。另外,我听说一些错误是由 python 错误引起的。例如,我可以调出语言选择菜单,但是当我在系统设置上单击它时,什么也没有出现。我也尝试更改语言环境 tr 但它没有给我任何输出。我知道 dex 上的 Linux 设置起来并不可靠,但我的目标只是通过编辑 xkb x11 符号文件等生成几个字母。
好吧,我开始明白真正的问题是什么了。
grep: /proc/bus/input/devices: Permission denied
这个错误暗示了一些事情。需要许可。我也不能以任何方式改变布局。即使我选择英文键盘,它也会给我这个错误。所以我什么都改变不了。因此,由于它仍然是默认的英文键盘,它在 xev 输出中显示为 noname。因为它在 EN 布局中不存在。我搜索了为什么它给了我这个错误。首先我看到proc文件夹被注册为nobody组。所以,只读。
首先,我使用 root 用户运行相同的 dkpg 命令。No protocol specified Cannot open display ":1"update-initramfs: deferring update (trigger activated)
这次它给出了 3 个额外的错误。
然后尝试sudo adduser dextop /proc/bus/input/devices
并得到
adduser: The group
/proc/bus/input/devices' 不存在`
chown -R dextop /proc/bus/input/devices
然后这次试了chown: changing ownership of '/proc/bus/input/devices': Permission denied
此时,根据此https://serverfault.com/questions/60711/chown-operation-not-permitted-for-root 我正在使用 FAT 文件系统,也许是我在 Linux dex 上使用的 Linux 映像。它不会也永远不会让我更改键盘布局。这很有趣。但感谢您的努力。
最后编辑:问题是 dex 应用程序中内置于 Linux 中的 Vnc 查看器,而不是 img 本身。因为当我以终端模式打开 Ubuntu 并连接到另一个 vnc 服务器时,我可以生成我想要的所有字符。(顺便说一句,连接到它没有用。当您全屏显示该 vnc 查看器应用程序时,连接会暂停)但我想我找到了一种使用我的母语使用 LibreOffice 的方法。我在reddit中解释过,这里:
在我的系统上拥有我永远不会使用的语言环境让我很恼火。它浪费空间,效率低下。有没有办法可以永久摆脱它们,并且只有美国英语和公制选项?
为什么我的终端字体变了?
如何删除系统语言环境,与如何删除不必要的语言环境??
我最近收到以下错误:
locale: Cannot set LC_ALL to default locale: No such file or directory
我系统中唯一的语言环境: en
$ 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
但不是en
,正如抱怨的那样perl
:
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"
所以我通过以下方式添加语言环境 en
:
% 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
我不想要上述任何语言环境(仅en_US
),但现在我无法摆脱它们——我按照
https://serverfault.com/questions/394610/remove-a-locale-in-中的步骤操作ubuntu
但是当谈到最后一步时,我仍然得到:
% 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
如何删除所有上述语言环境并仅保留en_US
?
结论与补充
/etc/locale.gen
感谢 Gunnar 的回答,对于那些额外的语言环境,它确实是由 , 中的条目引起的。只是 FTR,这就是发生locale-gen en
的变化/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
作为比较,这是默认的样子(即,没有上述任何额外的语言环境):
$ sed '/^#/d;' /etc/locale.gen; echo ---
---