GentooNotes

来自公开记录
跳到导航 跳到搜索

Gentoo Notes

这个页面包含了我使用 Gentoo/Funtoo 系统的时候遇到的一些问题或者感想。

<<>>

修订

看到已经有了一个 FuntooNotes 的页面,我觉得干脆还是把 Funtoo 的内容放到那边去,更加清晰。

我的 Gentoo/Funtoo 历史

我在 2016 年 7 月 7 日在 ThinkPad X250 笔记本上重新安装了 Funtoo Linux。上一次安装 Gentoo 是在 2007 年 12 月,使用到了 2008 年 3 月。当时安装到了我出国前购买的 DELL XPS M1330 笔记本上,2007 年 10 月的时候,我第一次可以用 Ubuntu 7.10 Beta 4 的 LiveCD 引导这台电脑,第一次安装上了它,用到了同年12月,换成了Gentoo。到2008年3月,电脑显卡坏了,无法显示,我在学校的书店购买了MacBook,之后没有再用 Linux。

2015年末我买了 ThinkPad X250,安装了 ArchLinux,用到了2016年6月,我把操作系统换成了Windows 10。用了一段时间,还是想念Linux,遂安装了Funtoo。由于上次用Gentoo时间间隔久远,许多知识需要重新学习,所以建立这个页面,用于重新整理。

2016 年 6 月至 2017 年 5 月,当中断断续续的多次安装了 Funtoo、Arch Linux、Gentoo,尝试使用了 LVM,也尝试 ZFS 未果。开始用 genkernel 编译内核,当中试过 ck-、pf- 等内核,最后回到了 gentoo-sources。

2017 年 5 月 19 日晚,我把 Arch Linux 删掉,安装了 Gentoo。这次遇到了一些坑,更新一下。

包管理

整理 World 集合

World 集合保存在 /var/lib/portage/world 中,里面的包在更新 @world 的时候会被更新。在emerge一个包的时候,加上--one-shot-1参数,可以防止这个包被添加进world中。

将一个包从world中剔除,运行emerge --deselect <包名>

可以参考 https://wiki.gentoo.org/wiki/World_set_(Portage)

Python 版本冲突

昨天(2016年8月4日)我升级Portage后,更新world时提示offlineimap的依赖有问题。大意是它可以依赖2.7和3.4版本的Python,但只能依赖一个。我通过在命令行加入PYTHON_SINGLE_TARGET变量的设置,单独emerge这一个包,好使;或者在make.conf里加入Python的依赖设定,也可以单独emerge成功offlineimap,但对于world里其它的包,就有了问题,因为有的包只依赖其中一个版本。所以,我需要单独设定offlineimap的依赖关系。经过搜索加实验,终于找出了办法:

# /etc/portage/package.use

net-mail/offlineimap sqlite python_single_target_python2_7 -python_single_target_python3_4
# 不能用 Python 3.4,否则无法正常运行


这样就可以指定offlineimap依赖3.4版本的Python了,同时也不影响其他包的依赖。

i3status 电池状态显示

默认的电池状态显示的不是实际状态,似乎是物理上的状态,无法达到100%,因为电池有损耗。要显示实际的电量状态,需要在配置电池的部分中,加上一行last_full_capacity = true。在i3status的manpage里有提及。

从这里找到的答案: https://bbs.archlinux.org/viewtopic.php?id=168718

访问 BBS

水木

luit -encoding gbk telnet bbs.newsmth.org

通过 luit 命令可以指定程序输出的编码,解决中文乱码问题。

批踢踢

luit -encoding big5 proxychains telnet ptt.cc

通过 luit 命令转换编码,通过 proxychains 来达到通过代理服务器来访问的目的。

proxychains 需要通过 emerge proxychains 安装,并在 /etc/proxychains.conf 里添加:socks5 127.0.0.1 9999 (我用的 shadowsocks,指定本地端口 9999)。

Emacs 中文输入问题

之前在 LinuxNotes 中,我修改了 /usr/share/applications/emacs.desktop 文件,然后改用 i3-dmenu-desktop 来调用命令,解决问题。不过有点治标不治本。今天,搜索了一下,没有什么可以在 Emacs 内部解决问题的方法,所以干脆删除了 /usr/bin/emacs 文件(一个指向 /usr/bin/emacs-24 的软链接),然后添加了一个名为 /usr/bin/emacs 的脚本,内容如下:

#!highlight sh

#!/usr/bin/env bash

LC_CTYPE=zh_CN.UTF-8; /usr/bin/emacs-24 "$@"


算是粗暴的解决问题。升级 Emacs 也许会造成问题,到时候再说吧,别的也没有什么好办法了。

Rxvt-Unicode 透明

过去一直都没在意这个功能,今天觉得好玩,设置来试试。首先,安装xcompmgr包,运行。

然后,在.Xresources里加上:

Rxvt.depth: 32
Rxvt.background: [80]black       ! [80]的意思是百分比

搞定。

Emacs 中文输入问题(2)

这个是 2017 年 5 月前后遇到的一个莫名其妙的问题,从 Arch 就开始,后来到了 Gentoo 还是一样。LC_CTYPE 已经设置了 zh-CN.UTF-8,但就是打不了汉字。后来从 IRC 上有人帮助,给我发了一段文字:

# https://fars.ee/3tkm

嗯,昨天先是更新了 portage,然后 emerge -uDNa world,再然后习惯性的 emerge --depclean -a,结果发现 xorg-x11 一直都依赖的几款字体要被清除,我还挺高兴的回车了,事后还挺严肃的 revdep-rebuild 了一下。
字体!我不禁想起当初折腾过的一件事情, font-cursor-misc 抑或 font-adobe-75dpi 导致的?测试后,发现装回以下 4 个包:
[ebuild  N    ] media-fonts/font-adobe-75dpi-1.0.0  USE="X nls" 0 kB
[ebuild  N    ]  x11-apps/bdftopcf-1.0.2  USE="-debug" 0 kB
[ebuild  N    ]  media-fonts/font-alias-1.0.1  USE="-debug" 0 kB
[ebuild  N    ]  media-fonts/font-util-1.1.1  USE="-debug" 0 kB
然后注销一下桌面(我用的是 GNOME,不知 KDE 会怎样),再进入桌面。迫不及待的调出 Emacs,CTRL+SPACE 一下,呃,ibus 又出来了!然后我就懒得再去细致的测试究竟是上述 4 个包中的哪一个对 Emacs 调出中文输入法有致命的影响了。


看上去和中文输入没有什么联系,但当我 emerge 了 font-adobe-75dpi 这个包(作外依赖同时安装上了另外 4 个包),接着 Emacs 就正常了,真是怪哉。

内核配置

自从用了 Funtoo,我就开始懒了,在安装的时候喜欢用个编译好的内核,先让系统跑起来再说。Gentoo 里没有,我就用 /proc/config.gz 作为配置文件。过去一直很好,不过20170512 这次安装的时候用了 Ubuntu 17.04 的 LiveCD 引导安装的时候,那个内核被配置为不提供 /proc/config.gz 文件,把我给愁的,后来忘了是怎么弄的了,貌似我用了 menuconfig,自己硬弄,在配置 iwlwifi 的时候绕了很多弯路,重启了几次才弄好,原因之一是 genkernel 时加了 --no-clean 参数,我觉得可以保留相同的配置不重新编译,只编译不同的,结果没想到竟然是有改动也不编译,导致我最后的几次编译都没有生效,后来去了这个,才好了,最终没有忘记得到一个配置文件,保存了下来。后来弄好 GNOME 后发现 Cheese 不能拍照,说是没有摄像头设备,然后又研究,从[DELL XPS 13 9360] 的文章里,看到了差不多的硬件,才配置好了。Gentoo Wiki 里关于 ThinkPad X250 的文章内容实在是少,苦也!

最终的内核配置文件放在[[[Media:GentooNotes$20170521.config|这里]]]吧,解决了大多数的问题,目前来说够我用的。

电源管理

这次安装好 GNOME 后发现找不到关机按钮,查了一些资料也没有找到有用的。如果我注销了当前用户,登录 root,这个按钮就出来了。之前从来没有遇到过这个问题,我怀疑是和权限有关。从 Log 里看到一些 Warning,关于 can PowerOff/Suspend 之类的话,感觉似乎有用。

最后抱着尝试的想法,给 sys-apps/systemd 加上了 policykit 这个 USE flag,重启后就好了。看来一般用户操作电源管理方面的,是和 PolicyKit 有关系的。

字体美化

我参考了[[1]],安装了 media-fonts/droid、media-fonts/source-han-sans,Gentoo 目前还没有收录思源宋体,我是直接从网站上下载。之前从 Windows 里复制了一些常用字体,不过不用它在界面上。思源黑体我使用了 l10n_zh-CN l10n_zh-TW l10n_ja l10n_ko 这几个 USE flag,为了尽量可以显示更多的亚洲文字。思源宋体我下载了简体和繁体中文。

自己添加的字体放在了 ~/.fonts 文件夹,然后在里面运行一遍 fc-cache -fv 就好了。我还建立了 ~/.config/fontconfig/fonts.conf 文件,内容贴在这里吧:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Droid Serif</family>
      <family>Source Han Serif CN</family>
      <family>Source Han Serif TW</family>
    </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Droid Sans</family>
      <family>Source Han Sans CN</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Droid Sans Mono</family>
    </prefer>
  </alias>
  <dir>~/.fonts</dir>
</fontconfig>


目前界面的字体已经非常好看了,我十分满意。

之前遇到过刚装好 Gentoo 后 Firefox 和 Thunderbird 的界面都是英文的情况,那怕是已经安装了语言包。后来我发现需要手动去 Add-ons 里切换语言。不过只需要一次,下次重装 Gentoo 后没有出现这个问题。

链接

这些链接值得研究

内核

其他话题