Gentoo on VPS

這篇文章是我在 VPS 上裝 Gentoo 的記錄, 方便以後要裝 VPS 的時候可以參考

1. 安裝 vim

首先在 gentoo 剛裝好之後, 第一件事情就是裝 vim, 不然會很痛苦

emerge vim

2. 設定 CFLAGS

cat /proc/cpuinfo 看看主機用的 CPU 是哪顆, 然後根據 CPU 的 model name 來設定 CFLAGS, 可以看看 CFLAGS – Gentoo Linux Wiki 及 Safe CFLAGS – Gentoo Linux Wiki

例如我在 slicehost 買的 256slice 的 cpu model name 是 Dual-Core AMD Opteron(tm) Processor 2212 HE, 所以我設定的 CFLAGS 如下。

CFLAGS="-march=opteron -O2 -pipe"

而 Linode 的 CFLAGS 如下:

CFLAGS="-march=prescott -O2 -pipe"

話說根據這篇 gentoo bug report 提到, 在 GCC 3.4 以後的 XEN VPS 似乎可以加上下面這個 CFLAG, 只是我在 GCC 4.1.2 的 Options That Control Optimization 這份文件當中, 沒有找到這個 CFLAG 還有其相關說明。

-mno-tls-direct-seg-ref

3. 設定 MAKEOPTS

從 cpuinfo 也可以得知有 4 顆 CPU, 所以依據 gentoo 文件上所寫的 MAKEOPTS 等於 n + 1, 可以將 MAKEOPTS 設為 5, 讓編譯的動作可以同時進行多個來加快速度。

MAKEOPTS="-j5"

不過, 當線上有服務在跑, 而且記憶體太小時, 得衡量一下這個數字。
  

4. 設定 portage excludes:

基本上當設定好 make.conf 就可以開始 rebuild 系統了, 不過由於在這麼小的 VPS 上, 我們需要減少硬碟消耗的空間, 以及頻寬使用, 所以我們可以讓 emerge – sync 時, 避免下載不需要的 ebuilds。

建立 portage 排除的清單

/etc/portage/rsync_excludes

app-cdr/
app-emacs/
app-laptop/
app-mobilephone/
app-pda/
app-xemacs/
games-<em>/
gnome-</em>/
kde-<em>/
media-gfx/
media-plugins/
media-radio/
media-sound/
media-tv/
media-video/
rox-</em>/
sci-<em>/
x11-</em>/
xfce-<em>/</em>

接著在 make.conf 加入下面這一行, 之後 emerge --sync 時就不會下載以上所設定排除的 package ebuilds, 可以減少硬碟空間以及頻寬的使用。

PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"

5. 刪除無用的 ebuilds

然後刪除先前設定排除, 用不到的 ebuilds:

rm -rf app-cdr app-emacs app-laptop app-mobilephone app-pda app-xemacs games- gnome-<em> kde-</em> media-gfx media-plugins media-radio media-sound media-tv media-video rox-<em> sci-</em> x11-<em> xfce-</em>

6. 更新 portage

在更新之前, 可以先用 mirrorselect 來尋找較快的 portage mirror (emerge mirrorselect)

mirrorselect -s5

再進行 portage 更新

emerge --sync

7. 重新編譯整個系統

依據新的 USE FLAGS 來重新編譯套件

emerge -va --update --deep --newuse world

8. 清除無用的 packages

emerge -va --depclean

記得請先安裝 gentookit (emerge gentoolkit)

revdep-rebuild

10. 關閉多餘的 tty

由於都是從遠端登入, 所以修改 inittab 如下, 只留下一個 tty 即可, 不過通常 VPS 預設應該是只有剩一個。 (可以全部關掉嗎?)

c1:12345:respawn:/sbin/agetty 38400 tty1 linux<h1>c2:2345:respawn:/sbin/agetty 38400 tty2 linux</h1><h1>c3:2345:respawn:/sbin/agetty 38400 tty3 linux</h1><h1>c4:2345:respawn:/sbin/agetty 38400 tty4 linux</h1><h1>c5:2345:respawn:/sbin/agetty 38400 tty5 linux</h1><h1>c6:2345:respawn:/sbin/agetty 38400 tty6 linux</h1>

11. localtime

ln -sf /usr/share/zoneinfo/Asia/Taipei /etc/localtime

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!