安裝前准備:
下載install-amd-minimal-xxxxxx
portage-latest.tar
stage3-amd64-xxxxxx.tar
(xxxxxx 為日期)
安裝:
准備好虛擬機,加載install-amd-minimal-xxxxxx.iso啟動
F1 加載啟動liveCD,選擇gentoo ,(第二個為gentoo-nofb,無幀緩沖)
編輯/etc/ssh/sshd_config 開啟密碼認證,及空密碼登錄,刪除密碼,通過xterm登錄
vi /etc/ssh/sshd_config
PasswordAuthentication yes
PermitEmptyPasswords yes
passwd -d root
確認硬盤設備lsblk (一般為sda)
分區規划 boot -->200M ; swap --> 1024M ; / --> 剩余
mkfs.ext4 /dev/sda1
mkfs.ext4 /dev/sda3
mkswap /dev/sda2 && swapon /dev/sda2
掛載
mount /dev/sda3 /mnt/gentoo/
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
上傳並解壓stage3和portage
cd /mnt/gentoo
tar xvjpf stage3* --xattrs
tar xvjpf portage* -C usr/ --xattrs
編輯make.conf文件
nano -w /mnt/gentoo/etc/portage/make.conf (Ctrl+o保存,Ctrl+x退出,Ctrl+w查找)
CFLAGS定義了C語言程序的優化參數
CFLAGS="-march=native -O2 -pipe"
或="-march=K8 -O2 -pipe" 等其他
Intel CPU 改成 -march=core2
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j4" 定義編譯線程,根據CPU情況設定,一般為核心數+1,建議在CPU+1至2*CPU+1之間
ACCEPT_KEYWORDS="~amd64" 可以獲得amd64平台的最新軟件,即官方所說的不穩定軟件,32位更換為"~x86",不想更新到最新的系統的去掉"~"標記
CHOST="x86_64-pc-linux-gnu" 此行默認
VIDEO_CARDS="intel " 指定顯卡類型,英特爾集顯用這個標簽。ATI顯卡閉源驅動用fglrx,開源驅動用radeon。Nvidia顯卡使用nvidia標簽。
LINGUAS=”zh zh-CN zh_CN.UTF-8” 設定語言
INPUT_DEVICES="keyborad mouse evdev" 輸入輸出設備,有觸摸板的可以根據實際情況設定synaptics標簽。
USE="mmx apng boost aqua a52 aac acpi cairo canna cvs dbus dri gd glut lame mad mng mp4 mplayer multilib smp svg theora usb wifi x264 xvid alsa sasl ssl sse sse2 X -gnome qt4 dvd alsa cdr kde bash-completion bzip2 cjk curl cvs cxx iconv jpeg jpek2k openmp opengl openal png therads lzma lzo"
AUTOCLEAN=”yes” 每次安裝完后自動清理垃圾
設置更新源 (選擇China下的)多個
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
設置同步源 (選擇China下的)只能一個
mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf
復制當前DNS信息
cp -L /etc/resolv.conf /mnt/gentoo/etc/
安裝必要的文件,掛載必要分區到新系統
mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
切換環境
chroot /mnt/gentoo /bin/bash
source /etc/profile
同步Portage tree
emerge –sync (網絡不好可暫時跳過)
設置系統環境
eselect profile list
eselect profile set 6
設置時區命令:
echo "Asia/Shanghai" > /etc/timezone
配置本地環境:
nano -w /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:locale-gen
重新加載環境
env-update && source /etc/profile
下載編譯源碼(重要,需特別注意)
emerge gentoo-sources
cd /usr/src/linux
make menuconfig
make && make modules_install && make install
安裝genkernel
emerge genkernel
制作initramfs
genkernel --install initramfs
編寫fstab,
nano -w /etc/fstab
/dev/sda1 /boot ext4 noauto,noatime 1 2
/dev/sda3 / ext4 noatime 0 1
/dev/sda2 none swap sw 0 0
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
配置主機名
nano -w /etc/conf.d/hostname
hostname="xxx"
配置網絡
nano -w /etc/conf.d/net
config_xxx="x.x.x.x netmask x.x.x.x brd x.x.x.x"
routes_xxx="default via x.x.x.x"
或者 config_xxx="dhcp" 或者留空默認為dhcp
設置網卡自動啟動
cd /etc/init.d
ln -s net.lo net.xxx
rc-update add net.xxx default
修改root密碼
passwd
新增用戶gandefeng
useradd -m -G users,wheel,audio,cdrom,portage,usb,video -s /bin/bash gandefeng
passwd
安裝日志管理軟件
emerge syslog-ng cronie
rc-update add syslog-ng default
rc-update add cronie default
rc-update add sshd default (注意配置文件)
安裝文件索引和dhcp
emerge mlocate
emerge dhcpcd
安裝bootloader
emerge sys-boot/grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/gruc.cfg
(如果是多系統,已經有grub的,在別的系統執行update-grub可更新Gentoo的引導項目、到grub菜單,有可能需要更改grub.cfg里關於Gentoo的啟動項root=/dev/sdxx為root=UUID=sdxx的UUID)
退出環境,umount
exit
cd
umount -l /mnt/gentoo/dev{/shm,/pts}
umount -l /mnt/gentoo{/boot,/proc}
reboot
重啟后更新系統,安裝軟件和桌面
emerge -e system 重新編譯系統軟件
emerge -e world 重新編譯全部軟件
emerge -uDN world 升級系統包括use的變化引起的
emerge --sync 更新Portage樹
注意: 更新中遇到某個包更新過不去,使用一下命令
per-cleaner all
phyton-updater
env-update 更新系統變量
etc-update 更新配置文件 -3 表示接受所有修改
仍然過不去,可能是上游的原因,可以編輯配置文件暫時告訴系統,這個程序已經安裝
nano -w /etc/portage/profile/package.provided
比如輸入我編譯不過去的這個軟件:
dev-perl/Try-Ting-0.110.0
此時,再執行更新系統命令,會跳過這個包的編譯更新,如果還有別的包編譯不過去,以此類推。待系統正常后,可以注釋掉package.provided里面的軟件,嘗試再次更新系統。
有些包,系統必備的,不安裝會有很多包編譯不過去,但是這個包專機卻又安裝不上去,這時候可以嘗試將make.conf中的MAKEOPTS參數改為”-j1“,使用單線程編譯。比如有次遇到dev-libs/boost編譯不過去,只能改為-j1才能過。
安裝X
emerge -av xorg-server xorg-x11 xorg-drivers
(startx是否正常不影響桌面環境的運行)
為Gentoo安裝桌面環境,以KDE為例。一般100+的包,三五個小時才能編譯完
emerge kde-meta 這將安裝KDE的全部組件完整安裝
emerge kdebase-meta 基礎KDE環境+少許必備軟件
emerge kdebase-startkde 基礎KDE環境
設置顯示管理器
rc-update add xdm default 將xdm加入自啟動服務
rc-update add dbus default 將dbus加入自啟動服務
nano –w /etc/conf.d/xdm
將文件里面的xdm修改為kdm,然kdm設置為登錄管理器。
Gentoo使用Overlay
安裝emerge layman
添加gentoo-zh到layman:
layman –L && layman –a gentoo-zh
-
在/etc/portage/make.conf最后加入以下兩行:
source /var/lib/layman/make.conf
PORTDIR_OVERLAY="${PORTDIR} ${PORTDIR_OVERLAY}"
如此一來就可以安裝第三方的軟件了,比如
emerge wps-office
emerge fcitx-sogoupinyin
-
emerge gentoolkit
安裝gentoolkit后,可以執行
emerge --depclean && revdep-rebuild進行系統垃圾清理。
-
安裝Chrome瀏覽器
emerge -av google-chrome
強烈建議安裝google-chrome而不是chromium,后者編譯太耗時了,怕了,服了!
-
Gentoo安裝網絡管理器(安裝kde-meta的略過此步驟)
取消/etc/conf.d/net中定義的ip獲取方式
emerge -av networkmanager networkmanagement
rc-update add NetworkManager default
-
為Gentoo安裝中文包
emerge kde-l10n
-
系統設置,local,設置中國,語言設置為中文,應用,重啟后生效。
-
安裝中文字體,復制Windows字體到
/usr/share/fonts中,刷新系統:fc-cache –fv
-
系統基本上可用了,有了桌面環境,有了網絡,剩下的還有什么搞不定的呢??
Gentoo常用命令和小技巧
-
下面是一些進入Gentoo系統后的一些常用命令和小技巧。
從別的Linux系統去更新Gentoo。比如說我在Ubuntu下工作,想更新一下Gentoo,此時不用重啟系統,只用切換到Chroot環境,進行更新就好了。
sudo -i
mount /dev/sdb12 /mnt/gentoo/
mount -t proc proc /mnt/gentoo/proc
#mount --rbind /sys /mnt/gentoo/sys
#mount --rbind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
此時已進入,可以執行更新命令:
emerge --sync && emerge --update --deep --newuse --with-bdeps=y @world && emerge --depclean && revdep-rebuild
或者簡單點的:emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild
效果是一樣的哈。
退出Chroot環境
# exit
# cd
# umount -l /mnt/gentoo/dev{/shm,/pts,}
# umount -l /mnt/gentoo{/boot,/proc,}
-
Gentoo更新內核:
emerge -u gentoo-sources
eselect kernel list
eselect kernel set 數字
更新/usr/src/linux符號鏈接:
cd /usr/src
ln -sfn linux-3.11.4-gentoo linux
genkernel --menuconfig all (此時可以load之前保存的config文件。注意:默認保存在/usr/src/linux但是剛才的步驟更新了/usr/src/linux指向,所以原來保存的配置文件在上一個版本的內核源碼包里面,比如/usr/src/linux-3.15.5-gentoo文件夾里面,需先把此文件夾下的配置文件復制到新內核的目錄中,比如:/usr/src/linux-3.15.6-gentoo才能正確導入。
如果新內核編譯后,無法進入圖形界面,那么就要從正常的內核中提取配置文件,用以編譯新內核。步驟如下:
用能正常進入圖形界面的內核引導系統,提取內核配置文件:cat /proc/config.gz | gzip –d > /usr/src/linux/config-ok
此時會將配置文件提取到/usr/src/linux目錄下,配置文件名稱為config-ok,導入的時候導入這個,就可以執行編譯了。
也有更簡單的辦法,指定特定配置文件進行內核編譯:
genkernel --kernel-config=/usr/src/linux/config-ok --install --symlink all
半自動配置方法是:genkernel --menuconfig --install --symlink all 此時會出現內核編譯選項對話框,可以導入配置文件,也可以手動選擇。
-
gcc-config: Active gcc profile is invalid! 解決辦法
gcc-config –c首先得到當前gcc版本號
執行gcc-config+得到的版本
比如:gcc-config x86_64-pc-linux-gnu-4.7.3
ok!
-
4
Gentoo日常升級維護:
emerge --sync or eix-sync
emerge -auvDN world
revdep-rebuild
emerge –depclean
或emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild
-
5
編譯到一半中斷了,可以刪除臨時文件,方法為:rm –rf /var/tmp/portage/*
-
6
查看軟件編譯時間:
qlop –Hgvt xxx
比如:qlop –Hgvt gcc這里會得到歷次編譯gcc所用的時間。