gentoo 安装

原文地址参考这里

All the stuffs about my gentoo linux

使用方法

拷贝各个目录下的文件到相应的目录下
etc <==> /etc
user <==> /home/your_local_user_name or /root
usr <==> /usr
var <==> /var
kde4 <==> ~/.kde4
config <==> ~/.config

常用命令

sudo emerge -uDN @world
sudo emerge -c
revdep-rebuild

Branches

i56500 : hs

i73700 : ks

i76700kz170p : home

thinkpadE460 : forelders

===================================================================

GENTOO 使用手册

系统安装

分区

/dev/sda4 ==> swap分区
/dev/sda5 ==> /boot
/dev/sda7 ==> /
/dev/sda8 ==> /home

mkfs.ext4 /dev/sda5
mkfs.ext4 /dev/sda7
mkfs.ext4 /dev/sda8

挂载相应分区,解包stage3

mount /dev/sda7 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda5 /mnt/gentoo/boot

cd /mnt/gentoo
tar xvjpf stage3-*.tar.bz2 --xattrs

make.conf(/mnt/gentoo/etc/portage/make.conf)内容如下:

CFLAGS="-O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="bindist mmx sse sse2 dbus policykit udev udisks icu"
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
GENTOO_MIRRORS="http://mirrors.sohu.com/gentoo/ http://mirrors.163.com/gentoo/"
MAKEOPTS="-j8"

/etc/fstab内容:

/dev/sda5       /boot   ext4    defaults,noatime        0       2
/dev/sda6       none    swap    sw      0       0
/dev/sda7       /       ext4    noatime 0       1
/dev/sda8       /home   ext4    noatime 0       3

拷贝DNS信息

cp -L /etc/resolv.conf /mnt/gentoo/etc/

挂载必要目录

mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

chroot /mnt/gentoo /bin/bash
source /etc/profile

安装portage

先下载好portage的snapshot压缩包直接解压到/usr/

先使用profile 1

eselect profile set 1

[1] default/linux/amd64/13.0

下载编译内核代码

emerge -v sys-kernel/gentoo-sources
emerge -v sys-kernel/genkernel
genkernel all

安装grub

emerge sys-boot/grub
grub2-install /dev/sda --target=i386-pc
grub2-mkconfig -o /boot/grub/grub.cfg

配置主机名

nano -w /etc/conf.d/hostname
hostname="zeroway"

配置网络文件

/etc/conf.d/net
config_eth0="dhcp"

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default

修改root密码

passwd root

安装到这里最好重启系统后再安装后面的桌面环境

不需要安装图形界面的话安装到这里就可以了

=============================================

安装KDE桌面环境

eselect profile set 6

添加下面的几个USE

USE="...dbus policykit udev udisks"
emerge --changed-use --deep @world
emerge kde-apps/kdebase-meta
emerge xorg-x11
emerge kde-base/kdm

/etc/conf.d/xdm
DISPLAYMANAGER="kdm"
rc-update add xdm default

修改KDE配置文件(/usr/share/config/kdm/kdmrc),让root可以登入

AllowRootlogon = true

kconsole solarized

参考链接

Just copy-n-paste this into your favourite shell:

if [ -d ~/.kde4 ]; then
    wget -qO ~/.kde4/share/apps/konsole/Solarized\ Light.colorscheme "https://raw.github.com/phiggins/konsole-colors-solarized/master/Solarized%20Light.colorscheme"
    wget -qO ~/.kde4/share/apps/konsole/Solarized\ Dark.colorscheme "https://raw.github.com/phiggins/konsole-colors-solarized/master/Solarized%20Dark.colorscheme"
else
    wget -qO ~/.kde/share/apps/konsole/Solarized\ Light.colorscheme "https://raw.github.com/phiggins/konsole-colors-solarized/master/Solarized%20Light.colorscheme"
    wget -qO ~/.kde/share/apps/konsole/Solarized\ Dark.colorscheme "https://raw.github.com/phiggins/konsole-colors-solarized/master/Solarized%20Dark.colorscheme"
fi

After that, you only have to select the appropriate color profile (Settings —> Edit current profile —> Appearance).

让tmux自动加载.bashrc文件在.bash_profile文件里添加下面这句话

. ~/.bashrc

添加新用户zeroway 默认组为users,附加组为adm,sys

useradd  -m -g users -G adm,sys -s /bin/bash zeroway
passwd zeroway

安装sudo

emerge sudo

在/etc/sudoers中添加一行设置相应的用户比如

zeroway ALL=(ALL) ALL

virtual box 安装

添加下面内容到/etc/portage/package.accept_keywords

=app-emulation/virtualbox-bin-5.0.20.106931 ~amd64
=app-emulation/virtualbox-modules-5.0.20 ~amd64
=app-emulation/virtualbox-additions-5.0.20 ~amd64

emerge  app-emulation/virtualbox
gpasswd -a zerowaytp vboxusers
emerge -1 @module-rebuild
modprobe vboxdrv

将虚拟机驱动模块加入到系统启动加载模块中

在/etc/conf.d/modules中添加下面一行

modules="vboxdrv"

添加dbus 和 consolekit 默认启动

解决开机警告:Warning: Cannot open ConsoleKit session: Unable to open session: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory.

rc-update add dbus default
rc-update add consolekit default

sudo的时候能自动补全

emerge bash-completion
echo "complete -cf sudo" >> /home/mobz/.bashrc

NetworkManager(删除系统默认的网络管理)

rc-update del net.enp5s0
rm /etc/conf.d/net
rm  /etc/init.d/net.enp5s0

安装NetworkManager和networkmanagement

emerge net-misc/networkmanager
emerge kde-misc/networkmanagement

之后需要添加相应的widget才可以看到有系统托盘出现

rc-update add NetworkManager  default

安装字体和输入法

emerge -av wqy-zenhei wqy-microhei wqy-bitmapfont wqy-unibit arphicfonts

安装输入法和配置fcitx的工具

emerge -av fcitx fcitx-sunpinyin fcitx-libpinyin fcitx-cloudpinyin fcitx-configtool

我使用的是KDE桌面环境所以在~/.xprofile里添加如下内容:
在每个用户目录下都要有这个才能使用输入法

export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
eval "$(dbus-launch --sh-syntax --exit-with-session)"

设置locale(/etc/locale.gen中添加下面内容):

en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.UTF-8 UTF-8

保存执行locale-gen

locale-gen

安装字体

emerge arphicfonts wqy-bitmapfont  corefonts ttf-bitstream-vera

在/etc/env.d/100i18n中添加如下内容

LANG=en_US.UTF-8
LC_CTYPE=zh_CN.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"

安装完成后重启添加pinyin输入法

使用gentoo搭建git server

分区,只分了/boot / swap三个分区 (/etc/fstab内容如下)

/dev/sda2       /boot   ext4    defaults,noatime        0       2
/dev/sda3       none    swap    sw      0       0
/dev/sda4       /       ext4    noatime 0       1

基本安装过程和上面一样,只不过没有安装图形界面

git server 搭建

静态IP地址配置 (/etc/conf.d/net)

config_enp1s0="192.168.7.100 netmask 255.255.255.0"
routes_enp1s0="default via 192.168.7.1"
dns_servers_enp1s0="192.168.7.1 8.8.8.8"

安装git

emerge dev-vcs/git

添加git用户

groupadd git
useradd -m -g git -d /var/git -s /bin/bash git

编辑/etc/conf.d/git-daemon内容如下

GIT_USER="git"
GIT_GROUP="git"

启动相应服务

/etc/init.d/git-daemon start

添加开机启动

rc-update add git-daemon  default

SSH keys 添加到下面文件

在客户端执行ssh-keygen -t rsa

将客户端生成的id_rsa.pub里的内容拷贝到服务器上下面的文件里

/var/git/.ssh/authorized_keys

服务器上创建仓库(在服务器上操作,ip:192.168.7.100)

# su git
$ cd /var/git
$ mkdir /var/git/newproject.git
$ cd /var/git/newproject.git
$ git init --bare

在客户端(ip:192.168.7.101)上把要添加文件到刚才创建的仓库

$ mkdir ~/newproject
$ cd ~/newproject
$ git init
$ touch test
$ git add test
$ git config --global user.email "[email protected]"
$ git config --global user.name "zeroway"
$ git commit -m 'initial commit'
$ git remote add origin [email protected]:/var/git/newproject.git
$ git push origin master

在其他客户端(client)克隆该仓库

git clone [email protected]:/newproject.git

Samba安装和配置

sudo emerge -v net-fs/samba

拷贝一个配置文件,在此基础上修改

sudo cp /etc/samba/smb.conf.default /etc/samba/smb.conf

添加用户并设置密码

sudo smbpasswd -a zeroway

开启服务

sudo /etc/init.d/samba start

设置某个目录为共享目录

在/etc/samba/smb.conf最后添加下面内容

[myshare]
comment = zeroway's share on gentoo
path = /home/zeroway/Downloads
valid users = zeroway
browseable = yes
guest ok = yes
public = yes
writable = no
printable = no
create mask = 0765

samba高级设置

单独为使用samba的用户设置一个组,该组成员不能通过终端登入,只能访问samba服务

新建一个samba组

groupadd samba

添加一个hsdz的用户到该组(samba)

使用/bin/false作为shell,且不设置用户密码

useradd -g samba -s /bin/false hsdz

注意:在/etc/samba/smb.conf里要添加这个用户访问权限

设置该用户samba访问密码

smbpasswd -a hsdz

重启samba服务后即可访问

aria2 + apache + yaaw 下载服务器搭建

安装apache参考https://wiki.gentoo.org/wiki/Apache

使用的是gentoo的portage,没有使用第三方overlay,如果本地有第三方overlay可能在安装的时候会有错误

所有操作都使用root用户

安装aria2

添加必要的USE
echo "net-misc/aria2 bittorrent metalink" >> /etc/portage/package.use/use
emerge -v net-misc/aria2

配置aria2

mkdir -p /etc/aria2/
touch /etc/aria2/aria2.session
添加/etc/aria2/aria2.conf

aria2.conf内容https://github.com/54shady/mygentoo/blob/i56500/etc/aria2/aria2.conf

安装apache

emerge -v www-servers/apache

在/etc/hosts中确保有下面的内容(其中zeroway是hostname)

127.0.0.1 zeroway

启动服务器

sudo /etc/init.d/apache2 start

测试apache是否安装成功,在浏览器里输入服务器IP(192.168.7.103)就可以访问了

修改apache默认访问目录

从apache的配置文件/etc/apache2/vhosts.d/default_vhost.include
中可以知道默认的访问目录是/var/www/localhost/htdocs
这里修改为如下:

DocumentRoot "/var/www/html"

安装yaaw

git clone https://github.com/binux/yaaw.git /var/www/html

启动aria2

aria2c --conf-path=/etc/aria2/aria2.conf

再次在浏览器中访问测试是否安装成功

USBView

软件安装

sudo emerge -v app-admin/usbview

因为该软件需要访问/sys/kernel/debug/usb目录需要root权限

但是使用root用户会有下面的错误

(usbview:4377): Gtk-WARNING **: cannot open display: :0

需要在非root用户下执行

$ xhost local:root

原因是root用户没有加入到zeroway访问X server的权限里

$ sudo usbview 就可以执行了

plantuml

安装

sudo emerge -v media-gfx/plantuml

使用

java -jar /usr/share/plantuml/lib/plantuml.jar sequenceDiagram.txt
其中sequenceDiagram.txt内容如下
@startuml
Alice -> Bob: test
@enduml

KDE win键设置

WIN键的设置

使用WIN+D来像WINDOWS一样显示桌面

System Settings > Shortcuts and Gestures > Global Keyboard Shortcuts > KDE component: KWin > Show Desktop

设置成win+d即可

WIN+e 绑定dolphin程序

CustomShortcuts里设置即可

根据字母在键盘排布位置对应桌面的位置

使用WIN+CTRL+q

KWin->Quick Tile Window to the Top Left

使用WIN+CTRL+a

KWin->Quick Tile Window to the Left

使用WIN+CTRL+z

KWin->Quick Tile Window to the Bottom Left

使用WIN+CTRL+p

KWin->Quick Tile Window to the Top Right

使用WIN+CTRL+l

KWin->Quick Tile Window to the Right

使用WIN+CTRL+m

KWin->Quick Tile Window to the Bottom Right

使用WIN+CTRL+o

KWin->Maxmize Window

使用WIN+CTRL+x

KWin->Minimize Window

安装声卡驱动相关

首先查看声卡驱动

lspci | grep -i audio

在内核中添加相关的驱动支持,确认下面这几个包都安装了

media-sound/alsa-utils
media-libs/alsa-lib

安装kmix

emerge kde-apps/kmix

安装完后点击音量控制图标

勾选Autostart和Dock in system tray

以后开机就能看到该图标了

设置音量调节快捷键

WIN+PageUp音量增

WIN+PageDn音量减

WIN+Del 静音

安装plank

用的是sabayon overlay里的plank

emerge x11-misc/plank

其中火狐会无法pin到plank上

在宿主目录下手动添加下面文件

/home/zeroway/.config/plank/dock1/launchers
内容如下:

[PlankItemsDockItemPreferences]
Launcher=file:///usr/share/applications/firefox-bin.desktop

安装suspend

发现用默认的gentoo portage安装会有冲突

所以就用localoverlay的方法安装

使用的Overlay: bircoph (layman)

# layman -a bircoph
# emerge sys-power/suspend

卸载upower

emerge --unmerge sys-power/upower

安装pm utils

emerge sys-power/upower-pm-utils

ctrl+alt+F7可以切换到图形登入界面

Suspend to disk with sys-power/pm-utils

配置SWAPFILE

用swapon -s 查看swap分区,假设是/dev/sda8

在/etc/default/grub文件里添加下面内容

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/sda8"

重新生成grub配置文件

grub2-mkconfig -o /boot/grub/grub.cfg

更新initramfs

genkernel --install initramfs

在/etc/pm/config.d/gentoo中添加下面的内容

SLEEP_MODULE="kernel"

重启系统

reboot

使用pm utils的工具测试,就可以suspend to disk

pm-hibernate

也就是点击Hibernate的效果

会把当前电脑所有状态保存在SWAP分区中,之后待机

出发键盘任意键可以唤醒系统,唤醒过程和正常开机一样,只是进入系统后会回复到保存的地方

partitionmanager 软件的安装

软件安装

emerge sys-block/partitionmanager

安装后需要使用root权限启动软件才能查看完整的磁盘信息

我使用的普通用户zeroway,所以要用sudo partitionmanager

但是发现提示下面的错误:

partitionmanager: cannot connect to X server :0

原因是root用户没有加入到zeroway访问X server的权限里

只要添加就可以了

xhost local:root

现在就能用sudo partitionmanager启动软件了

以后凡是需要有root权限的GUI程序都可以这样

例如porthole(portage图形安装方式)软件也是一样的

Fix Valgrind’s must-be-redirected error in Gentoo

参考链接

In order to fix this error, it is necessary to:

  • enable the splitdebug feature (or rather: it is “recommended” to enable).
  • enable debugging symbols for glibc.
  • recompile sys-libs/glibc.

  • 修改/etc/portage/make.conf添加splitdebug,应该也可以只修改glibc的

    FEATURES=”$FEATURES splitdebug”

  • 单独修改编译glibc时的编译选项(也可以在make.conf里配置成全局的)

Create the file /etc/portage/env/debug.conf and add:

CFLAGS="${CFLAGS} -ggdb"
CXXFLAGS="${CFLAGS} -ggdb"
  • 创建/etc/portage/package.env/glibc添加如下内容

    sys-libs/glibc debug.conf

  • 重新编译安装glibc

    emerge sys-libs/glibc

使用UEFI模式启动的电脑安装GENTOO

下面只说明差异部分

假设/dev/sda1就是EFI分区,那就让gentoo使用这个分区

使用刻录ubuntu14.04到u盘,这里借用ubuntu的刻录盘来进入到UEFI模式

参考链接

使用UEFI模式启动,需要关掉secure boot功能

分区和挂载点:

sda4 ==> /home

sda5 ==> /

sda6 ==> swap

mkfs.ext4 /dev/sda4
mkfs.ext4 /dev/sda5
mkswap /dev/sda6
swapon  /dev/sda6

mkdir /mnt/gentoo
mount /dev/sda5 /mnt/gentoo/
mkdir /mnt/gentoo/boot/efi -p

挂载EFI分区

mount /dev/sda1 /mnt/gentoo/boot/efi

下面到操作要保证能成功的前提是启动到时候是UEFI模式启动的

安装grub支持EFI,这里指定的EFI目录就是挂载到sda1

echo GRUB_PLATFORMS="efi-64" >> /etc/portage/make.conf
emerge sys-boot/grub:2
grub2-install  --target=x86_64-efi --efi-directory=/boot/efi
grub2-mkconfig -o /boot/grub/grub.cfg

你可能感兴趣的:(Linux,gentoo)