前日心血来潮,又给自己的机器安装了 Gentoo Linux,以下是相关的一些我记下的笔记,希望能有帮助。
解决 rxvt、emacs 乱码
事情是这样的……我安装好了 gentoo,英文和中文字体也已安装,打开 firefox 和 amule 字体均显示正常,也可以用 fcitx 输入中文。可是当我打开 rxvt 和 emacs 的时候发现中文全部乱码,使用 “ls” 命令甚至连英文的目录也是乱码。
检查 use 标记,已打开 nls、truetype ;检查 locale,也正常。网上找了一番,没有收获,最后我无聊到翻看 use 列表,突然发现有一个叫 xft 的字体标记,加入 make.conf 后 emerge ,问题解决。
解决 emacs 下 fcitx 无法输入中文
解决了乱码问题,于是便想在 emacs 下记录下来,免的以后忘记,结果又发现中文无法输入。网上有人说打 “LC_CTYPE=zh_CN.utf8 emacs” 这个命令就可以使用了,但我本来就已经定义了,在这样也还是没有用。
最后的解决办法是安装了几个字体相关包:
font-cursor-misc
bdftopcf
font-alias
font-util
重启 X 后问题解决。
emerge 命令整理
这次安装就这两个问题,现在把 gentoo 的包管理命令整理列出。
<pre>
emerge -avt 带详细信息,树形依赖关系显示,交互确认指示的安装命令
emerge -avC 删除当前包,并显示详细信息以及删除前询问
emerge -s 搜索查找安装包
emerge -vp 查看带详细信息的依赖关系
emerge -f 仅在 USE 标记前提下,有针对性的下载需要安装编译的源码及依赖包源码
emerge --sync 从指定的rsync站点更新portage树,先前所作所有portage树更改均失效
emerge -avtuDN world 带详细信息,树形依赖关系显示,交互确认指示,依赖包查找更新及根据 USE 标
记新增,删除情况,对依赖包进行重新编译安装
emerge -avt --depclean 带详细信息,树形依赖关系显示,交互确认指示,系统清理命令
</pre>
在 emerge -avt --depclean 里列出的包中如果有有用的包,把它完整的包名放入 /var/lib/portage/world 中,就可以避免被删除。
下面是每个选项的具体含义:
<pre>
world/system world范围更广,包含了system,这是两个set,前面不用加--或-
--sync 从指定的rsync站点更新portage树,先前所作所有portage树更改均失效
--depclean 深度清理,移除与系统无关的包
-D/deep 计算整个系统的依赖关系
-p/pretend 预览
-a/ask 先予询问
-c/clean 清理系统
-C/unmerge 卸载,与emerge相反
-h/help 帮助文件
-v/verbose 详细内容
-s/search 查找
-S/searchdesc 从文件名和描述中查找,要慢一些
-u/update 升级软件包
-e/emptytree 清空依赖树,一般不用,危险命令
-1/oneshot 一次性安装,不将其信息加入系统目录树
-o/onlydeps 只安装其依赖关系,而不安装软件本身
-t/tree 显示其目录树信息
-k/usepkg 使用二进制包
-K/usepkgonly 只使用二进制包
-f/fetchonly 仅下载安装包
-N/newuse 使用新的USE FLAG,如有必要,需重新编译
-n/noreplace 更新system,但先前安装的软件不予覆盖
</pre>
Gentoolkit
Gentoolkit包含了一整套有用的工具来帮助你管理你的软件包和跟踪你的系统上发生的事。到现在为止,存在着两种版本 app-portage/gentoolkit 和 app-portage/gentoolkit-dev。前者包含了管理脚本,而后者包含了一些专门帮助 Gentoo 开发的脚本。如果你是一个开发者,你可以通过联系 Gentoolkit 维护者来让你的脚本被收录到 gentoolkit-dev 里。
<pre>
eclean distfiles 删除过期的包
revdep-rebuild 重新构建动态链接到由可能已经删除的包提供的公共对象的程序
revdep-rebuild -p 假装(pretend mode)运行revdep-rebuild
</pre>
equery
equery 只适用于已安装的软件包,无法在安装新软件包时,提供帮助。通常 equery 负责查询,emerge 负责安装,卸载,更新。
<pre>
equery d depends 列出某个已安装软件包的所有直接依赖关系
equery g depgraph 树形显示某个已安装的软件包的依赖关系
equery u use 列出某一个已安装的包使用到的所有标记及详细信息
equery h hasuse 列出所有使用了指定 USE 标记的已安装软件包
equery l list 查询某个已安装的软件包,并列出相关信息
equery s size 显示某个已安装软件包的大小
equery k check 检查某个已安装软件包是否正确
equery w which 显示某个已安装软件包的绝对路径
equery f files 列出某一个已安装的软件包的所有文件
equery b belongs 查看某个文件属于哪个已安装的软件包
</pre>
euse
euse是一个用来在多个地方查看、设置和取消USE标记的工具。
<pre>
euse -i 查看标记的详细信息
euse -D 取消某个标记
euse -E 启用某个标记
euse -a 列出已激活的所有标记
euse -a -g 只显示活跃的全局USE标记
euse -a -l 只显示活跃的局部USE标记
</pre>
格式说明: 中括号共分5列,每列分别表示+/-(激活或取消)、在环境(Environment)变量里设置的、在make.Conf里设置的、在make.Defaults里设置的和在make.Globals里设置的。如果以上都有,则输出的信息就像这样[+ECDG]。