GentooLinux安装总结
2017年04月27日

概述

Gentoo是一个基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点。 Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西——你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版。

安装

基本系统

从分区到重启正常运行的基本安装过程

基本系统

lvm systemd 基本系统

wifi配置

cpu特性USE

emerge -1v app-portage/cpuinfo2cpuflags
cpuinfo2cpuflags-x86 >> /etc/portage/make.conf

桌面环境配置

XFCE桌面环境

KDE桌面环境

GNOME桌面环境

Openbox

显示管理器

系统默认使用xdm引导,所以不会有x相关的程序,如果使用x相关的程序或者桌面环境还是建议使用显示管理器进行登录
不管使用什么显示管理器,最后需要修改/etc/conf.d/xdm文件,使用新的显示管理器.并且把xdm添加到系统启动级别
vim /etc/conf.dxdm
DISPLAYMANAGER=“gdm”

rc-update add xdm default

slim

轻量级显示管理器,依赖小
值得注意的时候,安装完.需要链接一个已知的session作为默认启动session.
如果没有设置默认session,登录的时候可以使用F1键进行选择
例如

ln -svf /etc/X11/Sessions/Xfce4 ~/.xsession
gdm

gnome 显示管理器,一般和gnome搭配

gdm-themes
gdm的主题包,包含多个主题,但是好看的不多,输入方式都一样,基本上只是修改了背景图片

kdm

kde 显示管理器,同样一般和kde搭配

其他安装

p7zip

7z格式的压缩/解压支持,如果是desktop profile 会自动添加wxwidgets USE,建议在make.conf里去掉

vim /etc/portage/make.conf
USE="${USE} -wxwidgets"

emerge -av p7zip

unrar

emerge -av unrar

rar格式的解压缩支持

wqy-microhei

emerge -av wqy-microhei

文泉驿微米黑字体

wqy-zenhei

emerge -av wqy-zen-hei

文泉驿真黑字体

gentoolkit

emerge -av gentookit

gentoo 工具包 包含 equery euse等实用功能

bash-completion

bash的命令参数补全支持

vim /etc/portage/make.conf 添加bash-completion USE
for i in $(ls -color=no /usr/share/bash-completion/); do eselect bashcomp enable -global $i; done

source /etc/profile

其他配置

/etc/portage/make.conf

EMERGE_DEFAULT_OPTS="--autounmask=n" 

使用这个选项,可以在emerge需要添加use和keywords或者license的时候自动修改文件.
网上的评论,虽然这个方法很方便,但久而久之这三个文件添加了什么东西自己都不清楚,所以建议还是手动添加

字体

对于其他字体,可以直接ln -svf /path/of/fontsdir ~/.fonts
xorg.config 里默认包含 ~/.fonts目录,所以可以直接使用

对于其他目录

vim /etc/X11/xorg.conf
# 查找 "Section Files" 部分 
FontPath "/path/of/fontsdir"

vim /etc/fonts/fonts.conf
<dir>/path/of/fontsdir</dir>
media-fonts/arphicfonts
media-fonts/bitstream-cyberbit
media-fonts/droid
media-fonts/ipamonafont
media-fonts/ja-ipafonts
media-fonts/takao-fonts
media-fonts/wqy-microhei
media-fonts/wqy-zenhei

以上是安装google-chrome时,提示可以安装的一些字体

不过默认情况下,系统的衬线字体和非衬线字体不是文泉驿字体,所以即便在chrome里设置成文泉驿字体,部分网页也可能出现不匹配的情况.
这可以通过修改/etc/fonts/fonts.conf~/.fonts.conf来完成各种类型字体优先级的设置
对于字体文件夹,也分为/usr/share/fonts~/.fonts可以根据需要复制字体到相应的文件夹(支持嵌套文件夹)

对于不会修改字体优先级的问题,文泉驿的网站上有一个字体修改工具,地址如下,但是其中的部分脚本似乎被墙,需要 goagent代理才能顺利打开
http://wenq.org/cloud/fcdesigner.html

本地化设置

对于现在的系统,如果使用统一设置,可以使用eselect命令进行修改

eselect profile set INDEX

如果想针对某一项进行修改

vim /etc/env.d/02locale
LANG="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"

不管选用哪种方法,最后需要source /etc/profile更新一下.
另外本地化设置,可能需要注销后重新登录

技巧

在更新时,禁止更新某个包

mkdir -pv /etc/portage/profile
echo "dev-qt/qtgui-4.8.5-r2" >> /etc/portage/profile/package.provided
echo "dev-qt/qtcore-4.8.5-r1" >> /etc/portage/profile/package.provided
emerge -av1 musescore

musescore依赖qtgui和qtcore

创建自启动的服务

need xxxx 需要的服务 比如需要在virtualbox-guest-additions之后启动
need virtualbox-guest-additions

例如自动把cpas lock 映射成 ctrl

vim /etc/init.d/userkeymap

depend() {
    use setkeycodes
#need xxx
}

start() {
    ebegin "Mapping Caps Lock to Ctrl"
        setkeycodes 0x3a 29
        eend $?

}

stop() {
    return 0
}

添加自动启动

rc-update userkeymap default

设置软件包的分支,USE,屏蔽

vim /etc/portage/package.accept_keywords

可以对某个包采用~amd64分支

packagename ~amd64

也可以限制某个版本范围采用某分支 ~amd64

>=packagename-1.0 ~amd64

例如

www-client/google-chrome ~amd64

类似的情况,设置的方法相同.文件都是在/etc/portage/目录,如果文件不存在,可以手动创建

文件名 作用
package.accept_keywords 设置软件分支
package.use 单独设置使用的USE
package.mask 屏蔽某个包,防止被安装
package.unmask 去掉某个包的屏蔽
package.license 商业软件许可

对于一些商业软件,需要自己添许可
www-client/google-chrome google-chrome

更新xorg后输入设备失效

方法1:

qlist -I -C x11-driver
emerge -va xxx

把列出来的驱动重新安装就可以了,并不是只安装xf86-input-evdev
方法2:

emerge -av @x11-module-rebuild

常用命令

如果想让gentoo系统用的得心应手,那就还需要实用gentoo的一些相关命令才行.例如:emerge equery eix genlop等等.
具体介绍,可以参考gentoo常用命令

其他

existing preserved libs found

提示 !!!existing preserved libs found的时候,重建包就可以了

emerge @preserved-rebuild

man 乱码

emerge man-db

man和man-db互相冲突,但portage会自动解决这个冲突(删除man安装man-db).
man配置文件是/etc/man.conf man-db是/etc/man_db.conf
ps:虚拟机里的gentoo可能是安装的比较晚的原因,默认就使用的man-db.

wget

如果wget 存在阶梯型断行 来源:http://luy.li/2010/02/11/wget_fix_eta/trackback/

msgunfmt /usr/share/locale/zh_CN/LC_MESSAGES/wget.mo -o - | sed 's/eta(英国中部时间)/ETA/' | msgfmt - -o /tmp/zh_CN.mo
sudo cp /tmp/zh_CN.mo /usr/share/locale/zh_CN/LC_MESSAGES/wget.mo

编译时提示econf failed错误

可以看看具体错误,可能是依赖关系造成的
或者运行perl-cleaner看看是否是perl更新了,而没有进行清理

perl-cleaner --all

声音问题

混音设置
既然Ubuntu 8.04尝试把所有软件搬到PulseAudio上,那么就记已经在成功运行于PulseAudio的继续基于PulseAudio。只支持ALSA的软件,继续使用ALSA。

修改/etc/pulse/default.pa

sudo vim /etc/pulse/default.pa

# 找到:
#load-module module-alsa-sink …
# 改为
load-module module-alsa-sink device=dmix

# 找到:
load-module module-suspend-on-idle
# 改为
#load-module module-suspend-on-idle
# 重新logout再login

# Optional:
# 找到: (解决录音问题,如skype)
load-module module-hal-detect
# 改为:
#load-module module-hal-detect

这样,通过使用dmix,PulseAudio就不会霸占整个audio系统。PulseAudio将成为alsa的其中一个MixChannel。然后,ALSA和PulseAudio便能很好地共存。以后都不再需要什么libflashsupport forpulseaudio了。

同步

昨天网卡故障,今天改用intel独立网卡,刚开机同步就总连不上服务器.按下葫芦起来瓢,直接改用git同步
但是后来发现git同步不会更新metadata,导致eix不能使用

CACHE_METHOD="/usr/portage parse|ebuild*" eix-update

生成metadata
后来发现还要更新很多配置文件

github.com/hasufell/portage-gentoo-git-config
添加脚本到/etc/portage/repo.postsync.d

其中更新metadata的时间相当长

vim /etc/portage/repos.conf/gentoo.conf 

[gentoo]
location = /usr/portage
sync-type = git
sync-uri = git://anongit.gentoo.org/repo/gentoo.git
auto-sync = true

需要安装git,上面这个是官方git源

相关信息

USE标记
ruby更新报错
FrameBuffer介绍
升级内核

相关链接

alsa文档
http://www.gentoo.org/doc/zh_cn/alsa-guide.xml