一堆为什么都有从使用gentoo开始!!
language, scim可以使用三个环境变量
* LANG
* LC_ALL
* LC_CTPYE
scim对LC_CTYPE变量的使用说明:Set this variable if you do not want to change your UI
前面两个都要影响到UI和字体, 第三个就是最好的选择了
scim官方的配置文档:
* http://www.scim-im.org/wiki/documentation/installation_and_configuration/all/system_configuration
上面的配置文档提到了scim使用的两种输入系统:
1. xim输入系统
2. im-module输入系统
xim是X服务器提供的一种输入系统, 比较有年份, 上面的文档说到这种输入系统在使用时会有些问题. 比如程序freeze等等
新的输入系统就是scim的im-module特性. 文档中提到了, scim的im-module在GTK环境下是默认安装im-module的, 但是在QT环境下, 需要安装不同的包:scim-qtimm, 下面是QT环境的问题:
The Qt im-module support is experimental right now and the qt-immodule patch is not included in most Linux distributions. If you can not find a Qt with im-module support built-in for your favorite distribution, chances are that you have to setup your Qt to work with XIM (like other X based apps). In that case, XMODIFIERS must be setup correctly for any KDE/Qt apps to work with SCIM.
Wednesday, December 31, 2008
什么是locale? 有什么作用?
使用gentoo就要多问几个为什么!
决定搞明白它!
之前只知道LC_*这堆环境变量的作用. 没有理会什么是locale.
什么是locale呢?
先看一下实体文件吧:
jessinio@nio-laptop ~ $ ls /usr/share/locale/zh_CN/LC_MESSAGES/
FvwmScript.mo cracklib.mo gtk20.mo sed.mo
FvwmTaskBar.mo findutils.mo libc.mo shadow.mo
GConf2.mo flex.mo libwnck.mo shared-mime-info.mo
Linux-PAM.mo fvwm.mo make.mo subversion.mo
atk10.mo gettext-runtime.mo nano.mo tar.mo
compiz.mo gettext-tools.mo popt.mo texinfo.mo
coreutils.mo glib20.mo scim-pinyin.mo wget.mo
cpio.mo gtk20-properties.mo scim.mo
一堆*.mo文件! *.mo和*.po文件就见得多了,i18n的产品!
先看一个*.po例子文件吧:
msgid "size not available"
msgstr "不被允许的大小"
msgid "Text%(sz)s"
msgstr "文本大小为 %(sz)s"
上面就是*.po文件的东西, 说白了:
*.po就是翻译对照表!!!!!
而*.mo就是*.po的二进制格式!! 从*.po文件生成*.mo可以使用msgfmt命令!
引用网上的一段话:
locale,说白了就是储存在glibc中的一些跟国家,地区有关的数据信息。比如说语言,货币,时间,输入法等等。在安装glibc的时候,它就会自动被安装在系统中。当程序需要的时候,它就会通过几个环境变量的设置,而选取不同的数据进行使用。这些数据被安装在 /usr/share/locale (X使用的被装在/usr/X11R6/lib/locale/)
在维基百科中可以看到如下信息:
程序是怎么使用不用的locale的呢? 答案在于环境变量!
就是那一堆LC_*的变量
上面N多个变量都是定制本地信息的,其实常用的只有两个:
1. LC_CTYPE
这会影响到(X)程序对字符的处理, 比如scim, 如下是scim对此变量的使用说明:Set this variable if you do not want to change your UI language, scim可以使用三个环境变量
* LANG
* LC_ALL
* LC_CTPYE
前面两个都要影响到UI和字体, 第三个就是最好的选择了
2. LC_MESSAGES 这会影响到X程序的界面与它使用的字体
决定搞明白它!
之前只知道LC_*这堆环境变量的作用. 没有理会什么是locale.
什么是locale呢?
先看一下实体文件吧:
jessinio@nio-laptop ~ $ ls /usr/share/locale/zh_CN/LC_MESSAGES/
FvwmScript.mo cracklib.mo gtk20.mo sed.mo
FvwmTaskBar.mo findutils.mo libc.mo shadow.mo
GConf2.mo flex.mo libwnck.mo shared-mime-info.mo
Linux-PAM.mo fvwm.mo make.mo subversion.mo
atk10.mo gettext-runtime.mo nano.mo tar.mo
compiz.mo gettext-tools.mo popt.mo texinfo.mo
coreutils.mo glib20.mo scim-pinyin.mo wget.mo
cpio.mo gtk20-properties.mo scim.mo
一堆*.mo文件! *.mo和*.po文件就见得多了,i18n的产品!
先看一个*.po例子文件吧:
msgid "size not available"
msgstr "不被允许的大小"
msgid "Text%(sz)s"
msgstr "文本大小为 %(sz)s"
上面就是*.po文件的东西, 说白了:
*.po就是翻译对照表!!!!!
而*.mo就是*.po的二进制格式!! 从*.po文件生成*.mo可以使用msgfmt命令!
引用网上的一段话:
locale,说白了就是储存在glibc中的一些跟国家,地区有关的数据信息。比如说语言,货币,时间,输入法等等。在安装glibc的时候,它就会自动被安装在系统中。当程序需要的时候,它就会通过几个环境变量的设置,而选取不同的数据进行使用。这些数据被安装在 /usr/share/locale (X使用的被装在/usr/X11R6/lib/locale/)
在维基百科中可以看到如下信息:
These settings usually include the following display (output) format settings:
- Display language setting
- Number formats setting
- Date/Time formats setting
- Timezone setting
- Daylight saving time (DST) setting
- Currency formats setting
程序是怎么使用不用的locale的呢? 答案在于环境变量!
就是那一堆LC_*的变量
| 变量名 | 说明 |
|---|---|
| LANG | 一次性定义全部locale设置,但是允许通过下面的LC_*设置进一步作单项定制。 |
| LC_COLLATE | 定义字符串的字母排序方式。例如这会影响目录列表的分类显示。 |
| LC_CTYPE | 定义系统的字符处理性能。这决定哪些字符能被视为字母、数字,等等。这个变量如果生效还决定所使用的字符集。 |
| LC_MESSAGES | 使用基于消息机制的本地化方式的应用程序的本地化信息(绝大多数GNU程序皆属此类,请看下面的章节以获知如何让支持以及不支持此机制的程序本地化)。 |
| LC_MONETARY | 定义货币单位和货币型数值的格式。 |
| LC_NUMERIC | 定义非货币型数值的格式。影响到千位分隔符和小数分隔符等。 |
| LC_TIME | 定义日期和时间的格式。 |
| LC_PAPER | 定义默认的纸张尺寸。 |
| LC_ALL | 一个用于覆盖所有其它设置的特殊变量。 |
上面N多个变量都是定制本地信息的,其实常用的只有两个:
1. LC_CTYPE
这会影响到(X)程序对字符的处理, 比如scim, 如下是scim对此变量的使用说明:Set this variable if you do not want to change your UI language, scim可以使用三个环境变量
* LANG
* LC_ALL
* LC_CTPYE
前面两个都要影响到UI和字体, 第三个就是最好的选择了
2. LC_MESSAGES 这会影响到X程序的界面与它使用的字体
Tuesday, December 30, 2008
apache的目录索引(index)的编码问题
平时为了方便, 一般都是如下配置一个文件夹的索引:
alias /devres "/uss/www/doc.rdev/devres/"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
现在有一个问题, 就是apache默认把这种行为设置为iso-8859-1
如下为得到的信息(使用dog程序):
HTTP/1.1 301 Moved Permanently
Date: Wed, 31 Dec 2008 01:42:44 GMT
Server: Apache/2.2.8 (FreeBSD) mod_ssl/2.2.8 OpenSSL/0.9.8e DAV/2 SVN/1.4.6
Location: http://doc.rdev.kingsoft.net/share/media/
Content-Length: 249
Connection: close
Content-Type: text/html; charset=iso-8859-1
为了使apache在进行index时使用UTF-8编码, 增加下面的选项:
IndexOptions Charset=UTF-8
OK! 工作完成!
alias /devres "/uss/www/doc.rdev/devres/"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
现在有一个问题, 就是apache默认把这种行为设置为iso-8859-1
如下为得到的信息(使用dog程序):
HTTP/1.1 301 Moved Permanently
Date: Wed, 31 Dec 2008 01:42:44 GMT
Server: Apache/2.2.8 (FreeBSD) mod_ssl/2.2.8 OpenSSL/0.9.8e DAV/2 SVN/1.4.6
Location: http://doc.rdev.kingsoft.net/share/media/
Content-Length: 249
Connection: close
Content-Type: text/html; charset=iso-8859-1
为了使apache在进行index时使用UTF-8编码, 增加下面的选项:
IndexOptions Charset=UTF-8
OK! 工作完成!
Wednesday, December 24, 2008
libc与glibc
linux libc可以说是glibc的历史分支!
后面因为glibc的优异, linux libc的开发者停止了linux libc的开发而釆用了glibc, 现在, linux libc几乎不使用了.
两者的历史:
1 http://en.wikipedia.org/wiki/GNU_C_Library
2. http://www.fsfe.org/en/fellows/ciaran/ciaran_s_free_software_notes/history_of_glibc_and_linux_libc
后面因为glibc的优异, linux libc的开发者停止了linux libc的开发而釆用了glibc, 现在, linux libc几乎不使用了.
两者的历史:
1 http://en.wikipedia.org/wiki/GNU_C_Library
2. http://www.fsfe.org/en/fellows/ciaran/ciaran_s_free_software_notes/history_of_glibc_and_linux_libc
Monday, December 22, 2008
mailman的BCC需要审核问题
工作需要架一个maillist, 发现, 在用户BCC一份email到list里时, 列表的管理员(当然是我了)会收到一份审核信.
实在是那个烦!
查了一把, 原来是FAQ
* 原URL: http://wiki.list.org/pages/viewpage.action?pageId=4030676
实在是那个烦!
查了一把, 原来是FAQ
* 原URL: http://wiki.list.org/pages/viewpage.action?pageId=4030676
virtualbox的NAT配置
工作需要, 要在服务器(ubuntu)下跑到个VM, 只要是linux不同的发行版本.
安装了一个virtualbox, 结果有一需求:
* 用户要指直login到虚拟机中
查了一把, 发现virtualbox主要有两种方式:
1. NAT转发
2. 搞个net-bridge, 这时, virtualbox有独立的IP
想了下, NAT转发比较easy. 就决定上这个( 没有需求一般是偷懒 )
本人一直深深知道服务器上, command才是王道, 所以, 主角是:
* VBoxManage命令!
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort" 2222
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort" 22
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol" TCP
查看一个VM被设置了哪些
jessinio@ubuntu-test-1:~$ sudo VBoxManage getextradata fedaro6 enumerate
VirtualBox Command Line Management Interface Version 2.0.2
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
Key: GUI/SaveMountedAtRuntime, Value: yes
Key: GUI/LastCloseAction, Value: powerOff
Key: GUI/LastWindowPostion, Value: 390,147,720,532
Key: GUI/Fullscreen, Value: off
Key: GUI/Seamless, Value: off
Key: GUI/AutoresizeGuest, Value: on
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort, Value: 2223
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort, Value: 22
如果想remove上面的某条配置, 可以使用
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol"
* 注意: 删除是等于set一个空值!
没有图形界面地启动VM:
sudo VBoxManage startvm redhat8 -type vrdp
问题又来了, 发现使用上面的启动命令行, 不能启动多个无界面的VM, 看一下
00:00:00.086 VirtualBox 2.0.2 r36488 linux.x86 (Sep 12 2008 14:56:22) release log
00:00:00.086 Log opened 2008-12-22T08:52:50.986863000Z
00:00:00.086 OS Product: Linux
00:00:00.086 OS Release: 2.6.22-14-generic
00:00:00.086 OS Version: #1 SMP Sun Oct 14 23:05:12 GMT 2007
00:00:00.092 VRDP: TCP server failed to bind to port 3389. (VERR_NET_ADDRESS_IN_USE)
00:00:00.092 VRDP: TCP server closed.
00:00:00.092 VRDP: Failed to start VRDP-IN thread, rc = VERR_NET_ADDRESS_IN_USE
00:00:00.094 Failed to launch VRDP server (VERR_NET_ADDRESS_IN_USE), error message: 'VRDP server port 3389 is already in use'
00:00:00.094 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={d5a1cbda-f5d7-4824-9afe-d640c94c7dcf} aComponent={Console} aText={VRDP server port 3389 is already in use} aWarning=false, preserve=false
00:00:00.103 Power up failed (vrc=VERR_NET_ADDRESS_IN_USE, hrc=NS_ERROR_FAILURE (0X80004005))
* 重点: 'VRDP server port 3389 is already in use'
原来, sudo VBoxManage startvm redhat8 -type vrdp是默认使用了3389端口的. google得到别一命令:
* sudo VBoxVRDP -startvm redhat8 -vrdpport 3391
此命令可以指定port的. OK, 满足工作需求, 先这样吧
* 注意, 对Guest进行这些设置, 都是需要重启Guest的VM
安装了一个virtualbox, 结果有一需求:
* 用户要指直login到虚拟机中
查了一把, 发现virtualbox主要有两种方式:
1. NAT转发
2. 搞个net-bridge, 这时, virtualbox有独立的IP
想了下, NAT转发比较easy. 就决定上这个( 没有需求一般是偷懒 )
本人一直深深知道服务器上, command才是王道, 所以, 主角是:
* VBoxManage命令!
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort" 2222
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort" 22
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol" TCP
查看一个VM被设置了哪些
jessinio@ubuntu-test-1:~$ sudo VBoxManage getextradata fedaro6 enumerate
VirtualBox Command Line Management Interface Version 2.0.2
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
Key: GUI/SaveMountedAtRuntime, Value: yes
Key: GUI/LastCloseAction, Value: powerOff
Key: GUI/LastWindowPostion, Value: 390,147,720,532
Key: GUI/Fullscreen, Value: off
Key: GUI/Seamless, Value: off
Key: GUI/AutoresizeGuest, Value: on
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/HostPort, Value: 2223
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/GuestPort, Value: 22
如果想remove上面的某条配置, 可以使用
sudo VBoxManage setextradata fedaro6 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/SSH/Protocol"
* 注意: 删除是等于set一个空值!
没有图形界面地启动VM:
sudo VBoxManage startvm redhat8 -type vrdp
问题又来了, 发现使用上面的启动命令行, 不能启动多个无界面的VM, 看一下
00:00:00.086 VirtualBox 2.0.2 r36488 linux.x86 (Sep 12 2008 14:56:22) release log
00:00:00.086 Log opened 2008-12-22T08:52:50.986863000Z
00:00:00.086 OS Product: Linux
00:00:00.086 OS Release: 2.6.22-14-generic
00:00:00.086 OS Version: #1 SMP Sun Oct 14 23:05:12 GMT 2007
00:00:00.092 VRDP: TCP server failed to bind to port 3389. (VERR_NET_ADDRESS_IN_USE)
00:00:00.092 VRDP: TCP server closed.
00:00:00.092 VRDP: Failed to start VRDP-IN thread, rc = VERR_NET_ADDRESS_IN_USE
00:00:00.094 Failed to launch VRDP server (VERR_NET_ADDRESS_IN_USE), error message: 'VRDP server port 3389 is already in use'
00:00:00.094 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={d5a1cbda-f5d7-4824-9afe-d640c94c7dcf} aComponent={Console} aText={VRDP server port 3389 is already in use} aWarning=false, preserve=false
00:00:00.103 Power up failed (vrc=VERR_NET_ADDRESS_IN_USE, hrc=NS_ERROR_FAILURE (0X80004005))
* 重点: 'VRDP server port 3389 is already in use'
原来, sudo VBoxManage startvm redhat8 -type vrdp是默认使用了3389端口的. google得到别一命令:
* sudo VBoxVRDP -startvm redhat8 -vrdpport 3391
此命令可以指定port的. OK, 满足工作需求, 先这样吧
* 注意, 对Guest进行这些设置, 都是需要重启Guest的VM
加载iso文件
linux下和FreeBSD下加载iso文件的方法有点不同
linux下:
FreeBSD下:
mdconfig -a -t vnode -f /your/iso/image/5.3-RELEASE-i386-disc1.iso -u 0
mount -t cd9660 /dev/md0 /iso
linux下:
[root@jessinio-laptop ~]# mount -o loop /mnt/iso/CentOS-5.2-i386-bin-DVD/CentOS-5.2-i386-bin-DVD.iso /mediaFreeBSD下:
mdconfig -a -t vnode -f /your/iso/image/5.3-RELEASE-i386-disc1.iso -u 0
mount -t cd9660 /dev/md0 /iso
Subscribe to:
Posts (Atom)