Gentoo Logo

Gentoo Linux 常見問題

內容:

1.  問題:

新手上路

請注意大部份的問題在 Gentoo 正式的文件及指南中都有回答。這裡只是一些常見問題的 列表。請閱讀那些文件和手冊頁來了解 Gentoo 及 GNU/Linux 如何工作,以及在這裡沒有 回答的疑問。

安裝

套件管理

使用方法

維護

開發

資源

2.  新手上路

Gentoo 到底怎麼唸?這個字是什麼意思?

Gentoo 是一種快速的小型企鵝,發音是 "gen-too"。(譯註:"尖兔" 配上一點英 文腔 XD~~)。Gentoo 企鵝的拉丁名稱是 Pygoscelis papuaGentoo 是福 克蘭群島(馬爾維納斯群島)的住民對這種企鵝的稱呼。

Gentoo 有什麼特別?

Gentoo 使用一個類似 BSD ports-like 的系統叫作 Portage。Portage 是一個套件管理系統,它讓 Gentoo 系統在軟體的安裝和維護上擁有極大的彈性,同時它也提供編譯時選項 (compile-time option) 的支援(透過 USE flags)、 條件式依賴關係、軟體安裝前摘要、安全安裝(透過 sandboxing)和解除安裝、系統側 寫 (system profiles)、設定檔防護 ,以上簡單列舉幾個,當然還有其他更多 功能

在 Gentoo 上,您可以使用您選擇的最佳化參數,直接從原始碼編譯整個系統,您擁有完 整的掌控權決定哪些套件該或不該安裝。Gentoo 提供您眾多的選項,讓您可以按照您的喜 好安裝 Gentoo,這就是為什麼 Gentoo 被稱為一個 meta-distribution

Gentoo 的開發工作是非常活躍的,整個發行版的開發週期非常積極緊湊。套件的補釘很快 地就會整合進入主流分支樹,文件是每天都在更新,portage 的功能也經常在新增,並且 每年釋出兩次正式版本。

3.  安裝

我發現我的系統在使用了 "-O9 -ffast-math -fomit-frame-pointer" 最佳化參數的時 候真的爆不穩的。為什麼呢?

請不要使用任何高於 -O3 的參數,因為現在的 gcc 版本已經不支援了。非常大 膽的最佳化參數有時候會讓編譯器把組譯碼調整成程式實際做的事情與程式碼原本的設計 完全不一樣。

請在正式回報臭蟲之前先用 CFLAGS -march= -O2 -march=<你的架構> 這個參數試一次。

我該怎麼改變根 (root) 使用者 (或實際上其他任何使用者) 的密碼?

您可以使用 passwd 指令改變您登入使用者的密碼。如果你是 root 的話,可以輸 入 passwd username 改變任何使用者的密碼。更多的選項以及設定請在安裝完成 之後查閱 man passwd

我該如何加入新的一般使用者?

使用 adduser username 指令將加入一個名為 "username" 的使用者。然而,這個 使用者並不會有許多你想授與他的權限。所以底下這個指令比較合適:

原始碼 3.1: 使用 useradd

# useradd -m -G users,audio,wheel username

這將加入一個使用者 "username",選項中的 audio 把他加入 audio 群組中,讓 他可以使用音效相關的設備。選項中的 wheel 把他加入 wheel 群組中,讓他可以 執行 su 指令暫時升級成根 (root) 使用者。

為什麼我不能 su 至根 (root) 使用者?

由於安全上的考量,只有屬於 wheel 群組的使用者能夠 su 成 root 。要將使用 者 username 加到 wheel 群組,以 root 的身份執行下面指令:

原始碼 3.2: 增加一位始用者到 wheel 群組

# gpasswd -a username wheel

我該怎麼關閉 devfs?

Gentoo 需要 devfs 核心支援, udev 使用者區支援,或靜態 /dev 才能正 常工作。因為 2.6 核心在大部份架構下都很穩定,建議你使用 udev。請參閱 udev 指南了解如何設定 udev。

如果你想要用靜態 /dev,請在 /etc/conf.d/rc 中設定 RC_DEVICES="static"

我可以不要重灌系統就將 Gentoo 從某個釋出版升級到另一個版本嗎?

實際上,安裝完成之後,不同釋出版本之間並沒有任何不同。Gentoo 1.4 以後的 版本是以 glibc-2.3.x 為基礎,執行 emerge --sync && emerge -uDN world 會將您的系統升級到 "最新的 Gentoo",不同釋出版之間真正的差別在於安裝程序及預編 套件。參閱 Gentoo 升級指南取得 關於 profile 的資訊及了解他在升級時扮演的角色。

我的核心無法開機,我該怎麼辦?

您不需要重作安裝流程中的每一個步驟,只需要做與核心相關的步驟即可。假設您已經將 Gentoo 安裝到 /dev/hda1 (/boot) 和 /dev/hda3 (/), /dev/hda2 是 swap 空間:

原始碼 3.3: 重新設定核心

用安裝光碟開機,等候提示符號的出現
先將所有分割區掛載起來:
# mount /dev/hda3 /mnt/gentoo
# mount /dev/hda1 /mnt/gentoo/boot
# swapon /dev/hda2
# mount -t proc none /mnt/gentoo/proc
接著 chroot 進入我們的 Gentoo 環境,然後設定核心:
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# cd /usr/src/linux
# make menuconfig
現在(解)勾選任何您之前錯誤選取(或未選取)
的選項。然後離開並且編譯您的核心:
# make && make modules_install
用您的 bzImage 檔案,複寫之前的舊檔:
# cp arch/i386/boot/bzImage /boot
如果您使用 LILO,重新執行 lilo -- GRUB 使用者略過此步驟:
# /sbin/lilo
現在可以離開 chroot 並重新開機。
# exit
# umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
# reboot

另一方面,如果問題出在您開機管理程式的設定,遵循同樣的步驟,但是不需要設定/編譯 核心,請改而重設您的開機管理程式(重編譯是不需要的)。

我的 proxy 需要認證,我該怎麼做?

要讓 Portage 自動使用這個方法,在 /etc/make.conf 中設定:

原始碼 3.4: /etc/make.conf

HTTP_PROXY="http://username:password@yourproxybox.org:portnumber"
FTP_PROXY="ftp://username:password@yourproxybox.org:portnumber"
RSYNC_PROXY="rsync://username:password@yourproxybox.server:portnumber"

我要如何燒錄 ISO 檔案?

您需要用 raw 模式燒錄這種檔案,意思是您應該只是把檔案放 到 CD 內,而是將檔案看作是整個 CD。

有許多 CD 燒錄軟體可供選擇;要一一列舉它們會累死,但是說明一些熱門的工具應 該無傷大雅 :)

  • 使用 EasyCD Creator,您選取 FileRecord CD from CD image,接 著您將 Files of type 改成 ISO image file。然後找到 ISO 檔案的 位置,按下 Open,當您按下 Start recording,這個 ISO 影像檔就 會正確的燒錄到 CD-R 上。
  • 使用 Nero Burning ROM,取消自動跳出的精靈模式,然後在 File 選單中選 取 Burn Image。選擇您要燒錄的影像檔,按下 Open。現在按下 Burn 按鈕,然後就可以看到您的新 CD 開始燒錄了。
  • 使用 cdrecord,您只要簡單地鍵入 cdrecord dev=/dev/hdc(把 /dev/hdc 用您的 CD-RW 裝置路徑取代),後面接上 ISO 檔案的路徑 即可 :)
  • 使用 K3B,選擇 Tools > CD > Burn Image,接著您可 以在 'Image to Burn' 區域中找到您的 ISO 檔案,最後按下 Start
  • 使用 Mac OS X Panther,從 Applications/Utilities 中開啟 Disk Utility,選擇 Images 選單的 Open,在主視窗中選擇 掛載的磁碟影像,然後選 Images 選單中的 Burn
  • 使用 Mac OS X Jaguar,從 Applications/Utilities 中開啟 Disk Copy,選擇 File 選單的 Burn Image,選取目標 ISO 檔然後按下 Burn 按鈕。

對於我的 CPU 該用哪個 CD/stage?

首先你要先找出你用哪個 CPU,先假設是 Pentium-M。然後要找出你的 CPU 相容那些指令 集。你或許需要查詢 CPU 製造商的網站來了解。不過用 Google 也是差不多的 :)

如果你不確定的話,選擇 "低於" i686 或是 generic x86 (或者是你的架構中相當的)。 這保證你可以運作,但是不會像最佳化的那麼快。

請注意你有比 Gentoo 編譯的 stage 檔更多的選項可以用,閱讀 gcc 指南 了解 -march 的設定值。

我開機後網路不通。有哪裡弄錯了?

首先你要檢查核心有沒有正確偵測到你的網路卡。執行 ifconfig -a 察看 eth0 或 wlan0(當你使用某些無限網路卡時)是否存在。你可能需要載入特定的核心模組 讓核心可以正確偵測到網路卡。如果是這種情況,確定你有把這些模組放到 /etc/modules.autoload.d/kernel-2.6 中(如果你用 2.4 核心的話是 kernel-2.4)。

如果你忘記把網路卡支援加入核心中。你需要重新編譯核心。

如果核心有找到你的網路卡,而且你設定你的網路用 DHCP,你可能忘了 emerge dhcpcd。你需要用安裝光碟重新開機來安裝 dhcpcd

使用安裝光碟修復系統的資訊可以在這裡找到。

我想要用 GRUB 或 LILO 啟動 Windows,但螢幕一片黑暗,我該怎麼做?

這是很常見的問題,如果你沒有把 Windows 裝在第一個磁碟,他會不開機。要解決這個問 題,你在開機設定中做一些調整來 "欺騙" Windows,讓他以為他是裝在第一個磁碟。注意 底下的範例,Gentoo 是安裝在 hda (第一個磁碟),而 Windows 裝在 hdb (第二個)。依你的需求調整設定。

原始碼 3.5: grub.conf Windows 開機設定範例

 
title Windows XP 
  map (hd1) (hd0) 
  map (hd0) (hd1) 
  rootnoverify (hd1,0) 
  chainloader +1 

原始碼 3.6: lilo.conf Windows 開機設定範例

 
other=/dev/hdb1 
  label=WindowsXP 
  table=/dev/hdb 
  map-drive = 0x80 
  to = 0x81 
  map-drive = 0x81 
  to = 0x80 

這會讓 Windows 認為他是裝在第一個磁碟並且順利的開機。根據你使用的開機管理員,可 以在 GRUB 文件man lilo.conf 找到相關資訊。

我如何用 Stage1 或 Stage2壓縮檔安裝 Gentoo?

Gentoo 手冊只說明如何用 stage3 壓縮檔安裝 Gentoo。但是 Gentoo 依舊有提供 stage1 及 stage2 壓縮檔。這是為了開發過程而提供 (Release Engineering 團隊使用 stage1 壓縮檔製作 stage3),單是一般使用者不必要使用他:stage3 壓縮檔就足以建立整個系統 。在安裝過程中你需要有網路。

Bootstrap 代表在安裝好核心系統套件後,編譯你系統的 toolchain (C 函式庫及編譯器) 。首先先依照 stage3 安裝過程。在你開始設定核心這一章前,修改 bootstrap.sh 以符合你的需要,然後執行他。

原始碼 3.7: Bootstrap

 
# cd /usr/portage/scripts 
# vi bootstrap.sh 

# ./bootstrap.sh 

接下來,使用新編譯好的 toolchain 重新編譯所有核心系統套件。我們需要用重新編譯, 因為 stage3 壓縮檔中已經提供了。

原始碼 3.8: 重新編譯核心系統套件

 
# emerge -e system 

接著你可以繼續設定核心。但是你不能使用 GRP 套件了。

4.  套件管理

套件以什麼形式儲存?

套件並不是一個個儲存的,Gentoo 提供一套 script 來計算相依性,下載原始碼,還有編 譯針對你需要的版本。我們一般只為發行版和快照提供編譯好的執行檔。 Gentoo Ebuild HOWTO 涵蓋了 ebuild 命令稿的詳盡內容。

至於完整執行檔的 ISO 發行版,我們建立一套完整的加強 .tbz2檔案格式。(相容於 .tar.bz2 格式,只是在檔尾有些檔案類型資訊。) 這可以幫助你快速且有效率的安裝一個可以用的 環境(但沒有完整的最佳化)。

你也可以用 Portage 建立 RPM 檔(Redhat package manager files),但是目前不太可能用 RPM 安裝套件。

我想要手動執行 ./configure,可以嗎?

可以,但是事情沒有那麼直接,也不建議你這樣做。因為要做到需要對 Portage 內部及指 令有清楚的了解,建議你對 ebuild 加上 patch 讓他做你想做的事,然後把他放到 Portage overlay 中(這就是他存在的理由)。這樣好維護,並且更容易做。閱讀 Gentoo Ebuild HOWTO 了解更多資訊。

我該如何在防火牆後面 emerge?

參閱 proxy為什麼我的 rsync 不能用?手動下載檔案 這幾個的說明。

為什麼我的 rsync 不能用?

如果您在防火牆後面,而且它不允許 rsync 連線,則您可以用 emerge-webrsync ,它會透過一般的 HTTP 幫您抓取並安裝 Portage 快照。emerge-webrsync 使用 wget 進行下載。參閱 proxy 了解如何透過 proxy 下載檔案及 Portage 快照。

原始碼 4.1: 使用 emerge-webrsync

# emerge-webrsync

我可以從其他作業系統 rsync 嗎?

有個叫做 unison 的程式可以在 UNIX 和 Win32 執行,請從這裡取得 - http://www.cis.upenn.edu/~bcpierce/unison/

我家裡使用緩慢的撥接上網,我可以從其他地方下載原始碼然後將他們加入至系統嗎?

毫無疑問。您可以執行 emerge --pretend package 看看那些程式會被安裝。要 找出可以抓到這些套件的網址,您可以執行 emerge -fp package,然後從其他地方 下載並把它帶回家。將原始碼放進 /usr/portage/distfiles/ 然後執行 emerge package 來看它撿起您剛帶給她的原始碼。

安裝程式的 .tar.gz 原始碼正在侵蝕我的 /usr/portage/distfiles/ 並且佔用寶貴的空 間。我可以安全的移除他們嗎?

刪除這些檔案並不會影響到電腦的效能,但是保持最新板的檔案是一個比較聰明的做法, 通常同一版本的軟體會發佈多個 ebuild,它們會使用同一個檔案,如果您刪除了這些檔案 包,則下次想要升級的時候就必需重新下載。這裡有一個 使用者發展的 程式,可以清除最新版以外的原始碼。雖然這可以工作,但是這不是由官方維護的 ,請自行負擔使用的風險。

/var/tmp/portage 裡面有什麼?我可以將它整個刪除嗎?

在編譯期間,Gentoo 會將套件的原始碼存在 /var/tmp/portage。這些檔案 及目錄通常在成功的安裝後就會移除,但是這有時候會失敗。如果沒有在執行 emerge 的話,清除這些東西是很安全的。為了安全,刪除前先執行 pgrep emerge 確認。

5.  使用方法

我該怎麼設置國際化鍵盤配置?

編輯 /etc/conf.d/keymaps 中的 KEYMAP 變數。然後重開或重新啟動鍵盤配 置命令稿。

原始碼 5.1: 重新啟動 keymaps

# /etc/init.d/keymaps restart

DNS 名稱解析只有根 (root) 使用者可以用

/etc/resolv.conf 包含了錯誤的權限;將它 chmod 成這樣:

原始碼 5.2: 變更 /etc/resolv.conf 的權限

# chmod 0644 /etc/resolv.conf

為什麼我的使用者不能有自己的工作排程?

您必須把他們加入 cron 群組。

我要如何在開機時啟動 numlock?

如果您在指令介面下工作,您只需要 rc-update add numlock default, numlock 就會在下一次開機時啟動。

每種 GUI 提供他們自己的方法來完成,請查閱求助或線上手冊尋找解答。

如何在登出時將我的終端機清理乾淨?

要清理您的終端機,在您的 ~/.bash_logout 指令稿中加入 clear

原始碼 5.3: 在登出時清理終端機

$ echo clear >> ~/.bash_logout

如果您想要新增的使用者都自動擁有這個功能,對 /etc/skel/.bash_logout做同樣的動作:

原始碼 5.4: 讓新使用者在登出時清除他們的終端機

# echo clear >> /etc/skel/.bash_logout

在 su 成為 root 之後,我無法執行 X 應用程式。

這個問題似乎只發生在使用圖形介面登入的情況,startx 使用者沒有遇到這種狀 況。這個問題是 Gentoo PAM 的一個 臭蟲,但是解決辦法很 簡單:把下列一行指令加入 /etc/profile

原始碼 5.5: Export the XAUTHORITY

export XAUTHORITY="${HOME}/.Xauthority"

6.  維護

ReiserFS 檔案系統損毀 - 我該怎麼修理?

如果您的 ReiserFS 分割區損毀了,嘗試使用 Gentoo Linux 安裝光碟並且在損壞的分割區 上執行 reiserfsck --rebuild-tree。這應該可以讓檔案系統再度上工,不過您可 能會因為檔案系統爛掉而損失一些檔案。

7.  開發

我該到那裡回報錯誤?

使用我們的 Bugzilla 臭蟲追蹤器:http://bugs.gentoo.org。您也可以使用 FreeNode 這個 IRC 網路上的 #gentoo頻道。

多久會發表新的版本?

在現實中,Gentoo 的套件會在原作者發佈新程式碼的短 時間內更新。至於何時 Getnoo 發佈新的 stage/profile/ISO,請查閱我們的 Release Engineering Project 頁面。 新的版本會公告在 gentoo-announce 郵寄 清單中。查閱 更新 的回答了解更多資訊。

我該如何在這篇 FAQ 中加入或回答問題?

http://bugs.gentoo.org 提出新的回報,然後將它加入 "Docs-user" 產 品, "Gentoo Linux FAQ" 元件。

我的系統喇叭在編譯的時候 "口畢~口畢~口畢~" 叫個不停,我該怎麼把它關掉?

Console Beeps 可以使用 setterm 關閉:

原始碼 7.1: 使用 setterm

# setterm -blength 0

如果您想要在開機時關閉 console beeps,您必須將這個指令加入 /etc/conf.d/local.start中。但是這只會關閉目前終端機的 beep 聲 。要關閉其他終端機的 beep,將這個指令像這樣引導至目標終端機:

原始碼 7.2: 使用 setterm (bis)

# setterm -blength 0 >/dev/vc/1

您必須將 /dev/vc/1 取代成您想要關閉 console beeps 的終端機。

8.  資源

我在那裡可以找到更多有關 Gentoo Linux 的資訊?

官方的 Gentoo 文件可以在 http://www.gentoo.org/doc/en/ 找到 (譯註:繁體中文在 http://www.gentoo.org/doc/zh_tw/)。

我可以買到 Gentoo Linux 的 CD 嗎?

所有支援架構的安裝光碟都可以在我們的 Gentoo 商店 中找到。當您 從我們的商店購買 CD 時,您同時也在支持我們的開發工作。所以,可能的話,請您考慮 從我們的商店中購買 :-)

你也可以在 Get Gentoo! 中找到許多販賣最新光碟的商家。

這篇 FAQ 沒有回答我的問題,我該怎麼辦?

第一步是瀏覽相關的文件 ,如果失敗了,嘗試一些列在 Google 上的 Gentoo Linux 郵件列表。要在 Gentoo 郵件列表中搜尋,只要輸入 "lists.gentoo.org foo" 來尋找 "foo"。如果全部都失敗了,或者您只是想和 Gentoo 的 大家聊天,來參觀我們在 irc.freenode.net 的 IRC 頻道:#gentoo。(譯 註:繁體中文使用者可以來 freenode 的 #gentoo-tw 頻道。)



列印

最後更新 2005年 11月 12日

這份文件的原始版本已不再被維護

大綱: 這篇 FAQ 是一部在 gentoo-dev 郵件列表以及 IRC 上面常見問題的集合。

Daniel Robbins
Author

Colin Morey
Reviewer

John P. Davis
Editor

Eric Stockbridge
Editor

Stoyan Zhekov
Editor

Carl Anderson
Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

【Palatis】
Translator

Benny Chuang
Editor

Jonathan Smith
Editor

LY Lai
Translator

YiDa Chiang
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.