Gentoo Linux 2005.0 x86 手冊

资讯 2024-07-09 阅读:49 评论:0
內容:Home: 安裝 Gentoo這個部份將帶領您進行 Gentoo 的安裝。 關於 Gentoo Linux 安裝步驟。不熟悉 Gentoo 的使用者並不了解 Gentoo 的選擇。 使...
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

內容:

Home:

  • 安裝 Gentoo
    這個部份將帶領您進行 Gentoo 的安裝。
    1. 關於 Gentoo Linux 安裝步驟。
      不熟悉 Gentoo 的使用者並不了解 Gentoo 的選擇。
    2. 使用 Universal 安裝光碟開機
      使用 Universal 安裝光碟你可以開機並進入讓你安裝 Gentoo 的執行環境。
    3. 設定網路
      如果你需要網路,這篇就是教你設定網路(包括網際網路)的地方。
    4. 準備磁碟
      為了要安裝 Gentoo,您一定要建立一些所需的分割區。這章的內容將為您解釋如何設定磁碟分割。
    5. Gentoo 安裝檔案
      這一章說明如何解壓縮 stage3 檔案及設定 Portage。
    6. 安裝 Gentoo 基礎系統
      現在 stage3 檔案已經解壓縮好了,我們 chroot 到新的系統及修改 USE 設定。
    7. 設定核心
      Linux kernel 是每個版本的核心。這章將解釋如何編譯您的核心。
    8. 設定您的系統
      您將需要編輯一些重要的設定檔。這章將解釋這些重要設定檔的功能以及設定。
    9. 安裝必要的系統工具
      就如之前所提的,Gentoo 的哲學是選擇。這章將帶領您選擇並且安裝一些重要的工具。
    10. 設定開機管理程式
      在x86架構中已經包含一些開機管理程式。每一種都有各自的設定方法,我們將帶領您一步步設定您的開機管理程式。
    11. 最終化您的 Gentoo 安裝
      到這個步驟時,您已經差不多要完成安裝過程了。我們只需要建立一個(或多個)系統使用者,以及安裝預編套件(自由選擇)。
    12. 然後呢?
      現在您的 Gentoo 系統已經完成安裝了,然後呢?
  • 使用 Gentoo
    學習如何使用 Gentoo:安裝軟體,變數,Portage 的行為等等。
    1. Portage 介紹
      這一章在簡介一些使用者在維護自己系統上的軟體的一些簡單的步驟。
    2. USE 參數
      USE 參數對於 Gentoo 非常的重要。在這章內,您將會學習如何使用 USE 參數和了解 USE 參數如何跟您的系統互動。
    3. Portage 功能
      包括了Portage擁有的特色,就像是軟體的編譯和快取等等。
    4. 起始程序(Initscripts)
      Gentoo 使用一份非常特別的起始程序,包含著其他功能如相依性和虛擬起始程序。這章將解釋所有的概念和如何使用它們。
    5. 環境變數
      使用 Gentoo,您可以很簡單的管理系統上的環境變數。這章將解釋如何管理的方法,也解釋著一些常用的變數。
  • 使用Portage
    "使用Portage"提供一些較深入的Portage功能介紹,Gentoo的軟體管理工具。
    1. 檔案和資料夾
      一旦您想進一步知道Portage,您必須先知道他是怎樣和在哪裡存取他的檔案。
    2. 經由變數來設定
      Portage完全由一堆變數來設定,因此您可以設定這些變數在設定檔或是在環境變數中。
    3. 混用不同分支的軟體
      Gentoo 提供一些已經依據穩定性和架構來分類的軟體在不同的分支中。在"混用不同分支的軟體"中將會教您如何設定這些分支並且如何讓您可以個別的使用這些軟體。
    4. 附加的Portage工具
      Portage另外提供一些工具讓您在使用Gentoo時有更好的經驗。閱讀他您將會學到更多快速的設定方式和其他的工具。
    5. 愉悅的使用官方的Portage Tree
      在這章中會提供您一些小技巧和小方法來使用您自己的Portage Tree,如何同步您需要的目錄,增加目錄等等。
    6. Ebuild的應用方式
      在這章中會告訴您一些有關於當Portage安裝軟體時的步驟和您自己要如何利用ebuild的資訊。
  • Gentoo 網路設定
    廣泛的 Gentoo 網路設定指南
    1. 新手上路
      在大部份的環境下設定及啟動網路介面的指南。
    2. 進階設定
      這裡學習這些設定如何工作 - 在學習網路模組前你需要先了解這一章。
    3. 網路模組
      Gentoo 提供你有彈性的網路設定 - 這篇告訴你如何選擇不同的 DHCP 客戶端程式,設定頻寬合併,橋接,VLAN 等等。
    4. 無線網路
      無線網路的設定並不很直觀。希望這篇能幫你設定!
    5. 新增功能
      如果你想要探險,你可以加上你自己的網路函數。
    6. 網路管理
      給筆記電腦或是移動電腦到不同網路的人參考。

1. 關於 Gentoo Linux 安裝步驟。

1.a. 介紹

歡迎!

首先,歡迎 使用 Gentoo。您將會進入一個關於選擇和效能的世界。 Gentoo 是代表著選擇。當您安裝 Gentoo 時,我們會清楚地解釋您可用的軟體選擇,安裝的方式,選擇您想要的系統記錄器,等等。

First xff0c; welcomes to use Gentoo. You will enter a world of choice and efficiency. Gentoo is the choice. When you install Gentoo xff0c; we will clearly explain the software options available to you xff0c; how you install xff0c; choose the system recorder you want xff0c; etc.

Gentoo 是一個快速,現代化,乾淨,高彈性設計的版本。 Gentoo 基於免費的軟體和絕對不會隱瞞問題。Portage,為 Gentoo 所使用套件維護系統,編寫於 Python 也代表著您可以簡單的查看以及更改原始嗎。 Gentoo 的套件系統使用原始碼 (也支援已編譯的套件)和設定檔都是普通的文字檔。換句話說,到處都是開放性的。

Gentoo is a fast & #xff0c; modern & #xff0c; clean #xff0c; high-ball design version. Gentoo is based on free software and is never hidden. Portage, the package maintenance system used for Gentoo & #xff0c; written in Python also means that you can easily view and change the original. Gentoo's package system uses the source code & #xff08; also supports the compiled package #xff09; and the configuration file is a normal text file. In other words, #xff0c is open everywhere.

了解您自己的 選擇 是非常重要的,這也是 Gentoo 的哲學。我們將盡力不強迫您安裝任何您不想安裝的軟體。如果您還是覺得我們強迫您安裝了某些您不想要的東西,請 申報錯誤

It is very important to know your own ; this is also Gentoo's philosophy. We will try not to force you to install any software you do not want to install. If you still feel compelled to install something you do not want xff0c; please for error.

安裝程序的規劃?

Gentoo 安裝可以分為 10 個步驟,從第二章到第十一章。每個步驟都會完成以下的目的:

Gentoo installation can be divided into 10 steps & #xff0c; from chapter II to chapter XI. Each step accomplishes the following objectives & #xff1a;

  • 第一個步驟後,您就在安裝 Gentoo 的工作環境內
  • 第二個步驟後,如果你需要的話,你的網路連線已經準備好了(這是自由選擇的)。
  • 第三個步驟後,您的硬碟已起始完成,並且可以放置您的 Gentoo 安裝
  • 第四個步驟後,您的安裝環境已經準備完成並且以 chroot 進入了新了環境
  • 第五個步驟後,核心套件,和所有 Gentoo 安裝的一樣都會被安裝
  • 第六個步驟後,您的 Linux 核心已經編譯完成了
  • 第七個步驟後,您已經編寫完大部份的系統設定檔了
  • 第八個步驟後,必要的系統工具(您可以從一份清單內選擇)已經安裝並且設定完成
  • 第九個步驟後,您選擇的開機程式已經安裝並且設定完成在您的新Gentoo系統當中
  • 第十個步驟後,您的Gentoo環境已經準備好讓您去探索了

當您擁有許多選擇時,我們將盡我們所能為您解釋每個的優點及缺點。我們將繼續使用預設的選項,將會以 "預設:" 放在標題。其他選擇將會以 "其他選擇:" 為標題。請 不要 認為我們建議您使用預設的,但這是我們認為多數使用者會使用的設定。

When you have a lot of options & #xff0c; we will explain each of the strengths and weaknesses to the best of our ability. We will continue to use the default & #xff0c; it will be marked with & #34; default & #xff1a; & #34. The other options will be marked with & #34; other options & #xff1a; & #34; #34. Please think we recommend using the default #xff0c; but this is the setting that we think will be used by many users.

有時候您可以選擇其他選擇性的步驟。這些步驟將會被標為 "選擇性:" 並且對於安裝不是非常的重要。但是,有些選擇性的步驟需要依賴著您之前所做的決定。我們將會在發生時,需要決定時和在選擇性的步驟前面告訴您。

Sometimes you can choose other optional steps. These steps will be labelled & #34; & #xff1a; " and are not very important for installation. But & #xff0c; some of the optional steps depend on the decisions you made earlier. We will tell you at the time of the event & #xff0c; we need to decide and before the optional steps.

我的選擇有那些?

您可以使用多種方法安裝 Gentoo。您可以下載然後使用我們的光碟安裝,從其他版本,從開機光碟(如 Knoppix),從網路開機的環境,從一個救援磁片,等等。

You can install Gentoo in a variety of ways. You can download and install xff0c from our CD; from other versions xff0c; from open disk xff08; e.g. Knoppix) xff0c; from the environment where the network opens xff0c; from a rescue disk xff0c; etc.

這份文件將會包含著使用我們的 Universal 光碟為安裝方式,他是一片可開機光碟,包含了全部讓 Gentoo Linux 啟動並執行需要的東西。你也可以使用我們的套件光碟在安裝好 Gentoo 基本系統後幾分鐘裝好整個系統。

This document will contain the installation mode & #xff0c using our Universal CD; it is an open disk & #xff0c; it will contain all the things needed to get Gentoo Linux to start and execute. You can also use our package CD to install the entire system a few minutes after the Gentoo basic system is installed.

這種安裝方法並不會安裝套件的最新版本,如果你想用最新版的話你可以看 Gentoo Linux 手冊 的安裝步驟。

This installation method does not install the latest version of the package xff0c; you can see Gentooo Linux Handbook.

關於其他的安裝方法請參考「其他安裝指南」。我們也提供也同樣有用的 Gentoo/x86 安裝技巧 文件。如果您認為這使用手冊說明的太詳細,您可以使用我們 文件資源中的快速安裝手冊,如果您使用的架構已經有文件。

For other installation methods, please refer to . We also provide . If you think this is too detailed to use the manual #xff0c; you can use our .

如果您打算使用以預先編譯的套件安裝 Gentoo,除了使用 LiveCD 的套件外,您將沒有其他選擇。更新版的 Gentoo 發佈也會在網路上提供這些已編譯完成的套件。

If you want to install Gentoo, using pre-compiled packages; xff0c; you will have no choice but to use LiveCD packages. An updated Gentoo release will also provide these compiled packages on the Internet.

碰到問題?

如果您在安裝過程內碰到問題(或是安裝指南)請到 Gentoo Release Engineering Project 查看勘誤表,或是到 臭蟲申報系統 查詢是否有重複或和您相同的申報。如果沒有,請建立一個方便我們維護。請不要害怕我們的開發員 -- 他們大部份不會吃人。

xff08; or xff09; please go to Gentoo Release Engineering Project to see the misunderstanding form xff0c; or bug complaint system to check whether there is a repetition or the same complaint as you. If there is no xff0c; create a convenient system for us. Please do not fear that our developers will not eat.

請注意,雖然您正在閱讀的文件針對各種不同架構,但是它還是會包含著一些關於其他架構的資料。這是因為 Gentoo 手冊使用著大量可共用的原始碼軟體(為了減少重複和少許的開發資源)。我們會將疑惑減到最少。

Note & #xff0c; although you are reading the document header for different structures & #xff0c; however, it will contain some data on other structures. This is because the Gento manual uses a large number of common source software & #xff08; to reduce duplication and a few development resources & #xff09; and we will minimize confusion.

如果您不確定問題是否為使用者相關(有些是粗心的錯誤)還是軟體問題,我們歡迎您到 irc.freenode.net 的 #gentoo (英文)或是 IRCNET 的 #Gentoo.tw 發問。當然,如果您有其他目的,我們也歡迎:)

If you are not sure whether the problem is related to the user & #xff08; some are careless errors & #xff09; or software & #xff0c; we welcome you to #gentoo & #xff08; English & #xff09; or IRCNET #Gentoo.tw. Of course #xff0c; if you have other purposes xff0c; we welcome #xff1a; xff09;

如果您有關於 Gentoo 的問題,請到 Gentoo 文件 查看我們的 常見問題。您也可以到 FAQs(英文) 或是 Gentoo Taiwan 討論區

If you have any questions about Gentoo & #xff0c; please visit Gentoo to see our . You can also visit FAQsxff08; xff09; or

1.b. 使用 Gentoo 發行平台(GRP) 快速安裝

GRP 是什麼?

Gentoo 發行平台,縮寫 GRP,是讓想要使用預編套件的使用者(就是你!)可以在安裝過程使用的快照,讓你加速 Gentoo 安裝的過程。GRP 包含了 Gentoo 完整安裝過程中需要的套件。他們不只有在安裝時加速安裝,在所有需要長時間編譯的套件(像 KDE,xorg-x11,GNOME, OpenOffice,Mozilla 等等) 都有 GRP 套件可以用。

Gentoo launch platform & #xff0c; initial GRP, is a snapshot that allows users who want to use the pre-assembly package (you!) to install & #xff0c; allows you to speed up the Gento installation process. GRP contains the packages needed for Gentoo's full installation. They do not just accelerate installation & #xff0c; GRP packages (like KDE & #xff0c; xorg-x11& #xff0c; GNOME #xff0c; OpenOffice #xff0c; Mozilla, etc.) are available.

然而,這些預編套在 Gentoo 生命週期中並不被維護。這些快照每次 Gentoo 發佈新版本時發佈,實現短時間裝好完整功能的 Gentoo 。你可以在 Gentoo 下工作實在背景更新系統。

However, xff0c; these presets are not maintained during the Gentoo life cycle. These snapshots are published every time Gentoo releases a new version xff0c; Gentoo, which has the full functionality in effect for a short period of time. You can work in Gentoo to update the system in the context.

Portage 如何處理 GRP 套件

你的 Portage tree - ebuilds 檔的集合(ebuild 是包含了套件資訊的檔案,像是說明,原始檔路徑,編譯過程,相依性等等) - 需要和 GRP 同步:可使用的 ebuild 版本必需符合 GRP 套件。

Your Portage tree - ebuilds file collection (ebuild is a file containing package information & #xff0c; like help & #xff0c; original file path & #xff0c; compile program #xff0c; dependencies etc.) - needs to sync with GRP xff1a; the available ebuld version must match the GRP package.

因為這個原因,你只有在使用目前這種安裝方式時從 GRP 套件得到益處。GRP 對那些想要全部套件都裝最新版本的人並不適用。

For this reason xff0c; you only benefit from the GRP package when using the current installation. GRP is not suitable for those who want to have all the packages in the latest version.

有 GRP 可以用嗎?

並不是所有的架構都有 GRP 套件可以用。這並不是說 GRP 不支援其他的平台,而是因為我們沒有足夠資源編譯及測試 GRP 套件。

Not all structures have GRP packages available. This is not to say that GRP does not support other platforms & #xff0c; it is because we do not have enough resources to compile and test GRP packages.

目前底下這些架構我們有提供 GRP:

We have GRP and #xff1a at the bottom.

  • x86 架構 (x86, athlon-xp, pentium3, pentium4) 注意:x86 套件 (packages-x86-2004.3.iso) 可以在鏡像站上取得,而 pentium3 ,pentium4 及 athlon-xp 只能經由 bittorrent 取得。
  • amd64 架構 (amd64)
  • sparc 架構 (sparc32, sparc64)
  • ppc 架構 (G3, G4, G5)
  • alpha 架構

如果你的架構(或子架構)不在列表的話,你並不能選擇使用 GRP 安裝。

If your structure (or substructure) is not on the list & #xff0c; you cannot choose to install with GRP.

現在這個說明結束了,接下來繼續 使用 Universal LiveCD 開機

#xff0c; continues

2. 使用 Universal 安裝光碟開機

2.a. 硬體需求

介紹

開始前,我們將先列出能成功安裝 Gentoo Linux 的硬體清單。

#xff0c before starting; we will first list the hardware that will successfully install Gentoo Linux.

硬體需求

CPUi486 或更新的
記憶體64 MB
磁碟空間1.5 GB (不包含置換分割區)
置換分割區至少 256 MB

2.b. Gentoo Universal Installation CD

介紹

Gentoo Linux 可以使用三個 stage 壓縮檔之一來安裝。stage 檔是包含了最小環境的壓縮檔。

Gentoo Linux can install one of the three files page. The stage file is the archive containing the minimum environment.

  • stage1 檔案中只包含了編譯器,Portage (Gentoo 的軟體管理系統) 以及一些編譯器及 Portage 需要的套件。
  • stage2 檔案包含所謂 bootstrap 好的系統,提供一個可以開始編譯其他應用程式,讓 Gentoo 完全弄好的最小環境。
  • stage3 檔案包含預先編譯好的最小系統,幾乎可以使用了。只要選擇某類程式中要安裝 哪一個程式。

在這份文件中,我們將會採用 stage3 安裝方式。如果您想要使用 stage1 或 stage2 檔案進行 Gentoo 的安裝,請使用 Gentoo 手冊 中的安裝指令,但是這會需要可運作的網路連線。

In this document xff0c; we will install the stage3 mode. If you want to install Gentoo xff0c using stage1 or stage2 files, please use Gentoo manual for installation command #xff0c; but this will require an operational network link.

Gentoo Universal Installation CD

Installation CD 是可開機的光碟,包含了一個自足的 Gentoo 環境,他允許您從光碟開機。在開機的過程當中,它會偵測您的硬體設備並且載入合適的區東程式。Gentoo Installation CDs 由 Gentoo 開發員所維護。

Installation CD is an open disk & #xff0c; it contains a self-contained Gentoo Environment & #xff0c; he allows you to open from the disk. During the opening process & #xff0c; it detects your hardware and loads appropriate Easter programs. Gentoo Installation CDs are maintained by Gentoo developers.

我們目前提供兩種 Installation CD:

We currently offer two types of Installation CD #xff1a;

  • Universal Installation CD 包含了您需要用來安裝 Gentoo 的所有軟體,它為常見的架構提供了 stage3 檔案,您需要選擇的額外應用程式的原始碼,當然,還有適用於您的硬體架構的安裝指令。
  • Minimal Installation CD 僅包含有最小需求的環境來讓您開機並設定您的網路,讓您可以連結上網際網路,它並不包含任何額外的檔案,所以無法在目前的安裝方式中使用。

Gentoo 同時也提供一個套件 CD,這不是 Installation CD,而是一個提供您在安裝您的 Gentoo 系統時可以利用的額外資源。它包含了預先編好的套件(一般所稱的 GRP 包),讓您在 Gentoo 安裝完成之後,更新您的 Portage tree 之前,簡單又快速地安裝額外的應用程式(例如 OpenOffice.org, KDE, GNOME, ...)。

Gentoo also provides a package CD, this is not an Installation CD, it is an extra resource that you can use to install your Gentoo system. It contains a pre-constructed package ( a commonly known GRP package & #xff09; & #xff0c; allow you to install xff0c; update your Portage tree xff0c; simply and quickly install extra applications xff08; e.g. OpenOffice.org, KDE, GNOME,... #xff09;

套件 CD 的使用方法稍後會在這份文件中介紹。

The method of using the package CD will be introduced later in this document.

2.c. 下載、燒錄、並使用 Gentoo Universal Installation CD 開機

下載並燒錄 Installation CD

您可以從我們的鏡像站中下載 Universla Installation CDs(還有,如果您想要,套件 CD 也一樣)。Installation CDs 放在 releases/x86/2005.0/installcd 目錄下,套件 CD 則放在 releases/x86/2005.0/packagecd 目錄。

You can download Universla Installation CDs & #xff08; and #xff0c; CD packages & #xff09; CDs in ; CD sets in reases/x86/2005.0/pacagecd<.

i686, athlon-xp, pentium3 和 pentium4 套件 CDs 可透過 BitTorrent 取得。

i686, athlon-xp, pentium3 and pentium4 packages CDs are available through .

在這些目錄內,您將可以找到 ISO 的檔案。這些是完整的 CD 映像檔方便讓您寫入 CD-R。

In these directories xff0c; you will find ISO files. These are complete CD images that allow you to write to CD-R.

這些檔案下載完成後,您可以確認檔案的完整性,看看有沒有毀損:

After downloading these files xff0c; you can confirm the file's integrity xff0c; see if there is damage xff1a;

要使用 GnuPG 程式取得我們的公開鑰匙,執行下列指令:

To use the GnuPG program to get our public key xff0c; to execute the following command xff1a;

原始碼?1: 取得公開鑰匙

$ gpg --keyserver pgp.mit.edu --recv-keys 17072058

然後檢查簽名:

Then check the signature #xff1a;

原始碼?2: 檢查簽名

$ gpg - -verify <簽名檔> <下載的映像檔>

如要燒錄所下載的光碟映像檔,您將需要選擇 raw 的燒錄格式。我們將教使用 cdrecordK3B;關於其他可以到我們的 Gentoo FAQ 找到。

If you want to burn the downloaded CD image & #xff0c; you will need to select the burn format for the raw. We will teach to use cdrecord and ; other things can be found at Gentoo FAQ.

  • 使用 cdrecord,您只需要輸入 cdrecord dev=/dev/hdc <下載的 iso 檔> (將 /dev/hdc 更改為您的燒錄機的位置):)
  • 使用 K3B,選擇工具(tools) > CD(光碟) > 燒錄映像檔(Burn Image)。然後在 '燒錄映像檔(Image to Burn)'然後 選擇正確的 ISO 檔案。最後按下 開始(Start)

使用 Universal Installation CD 開機

重要: 雖然您可能沒有多餘的時間讀完全部,但是請至少讀完這個段落再繼續。

當您完成光碟的燒錄,我們現在要將它用來開機了。移除光碟,將您的系統重新啟動至 BIOS。這通常是按 DEL,F1,或是 ESC,依照您的 BIOS。在 BIOS 裡面,將 boot order 將 CD-ROM 的位址放到 hard disk 前面。這項設定通常會在 "CMOS Setup" 的目錄裡面。如果您沒有做此項動作,系統重新啟動時將會略過光碟機直接從硬碟開機。

When you finish the disk's burning & #xff0c; we're going to turn it on now. Remove & #xff0c; restart your system to BIOS. This is usually based on DEL, F1, or ESC, in accordance with your BIOS. In BIOS & #xff0c; put Boot order before harddisk. This setting is usually in & #34; CMOS Setup #34; directory. If you do not do this & #xff0c; the system will be reboot directly from a hard disk.

現在將安裝光碟放到光碟機內然後重新啟動。你應該會看到開機提示符號u3。在這個畫面,你可直接按下 Enter 用預設開機參數來啟動開機程序。或著你可以在核心後面接著開機參數,來用自訂的參數啟動 Installation CD 的核心。

The installed disk is now placed in the disk and then restarted. You should see the startup alert u3. On this screen & #xff0c; you can press Enter directly to activate the startup application using the default open parameter. Or you can follow the startup parameter & #xff0c behind the core; to start the startup CD core with a custom parameter.

選擇核心?沒錯,我們在 Installation CD 上提供多個核心讓您使用。預設的為 gentoo。其他的核心則是為了特殊的硬體而製作,而 -nofb 的變數將關閉 framebuffer。

Select the core & #xff1f; & #xff0c; we provide multiple cores for you to use on the Establishment CD. The default is gentoo. The other cores are xff0c; and the variables will be disabled.

以下的列表為我們所提供的核心以及簡介:

The following is a list of the cores that we have provided and a short introduction to #xff1a:

核心介紹
gentoo預設 2.6 核心支援多個 CPU
gentoo-nofbgentoo 一樣,但是關閉了 framebuffer 的支援
memtest86檢查您的記憶體是否有錯誤

您也可以提供核心參數。它們將代表著各個選擇行開啟(或是關閉)的設定。以下的清單將會解釋所有可用的核心選項。

You can also provide core parameters. They will open & #xff08; or close & #xff09; settings for each selection line. The list below will explain all available core options.

原始碼?3: Options available to pass to your kernel of choice

- agpgart       載入 agpart (如果您有顯示的問題)
- acpi=on       載入 ACPI 軔體支援
- ide=nodma     針對無法使用的 ide 裝置強迫關閉 dma
- doscsi        尋找 scsi 裝置(有時候會讓某些網路卡無法作用)
- dopcmcia      啟用 PCMCIA 光碟機的 pcmcia 服務
- nofirewire    不要在 initrd 載入 firewire 模組(firewire 光碟機,等等)
- nokeymap      關閉 non-us 鍵盤的 keymap 選擇
- docache       在執行時將光碟快取到記憶體,讓您可以在安裝時更換光碟。
- nodetect      讓 hwsetup/kudzu 和 hotplug 無法執行
- nousb         從 initrd 關閉 usb 模組,關閉 hotplug
- nodhcp        如果偵測到網路卡,讓 dhcp 無法自動開始
- nohotplug     關閉 hotplug 服務
- noapic        關閉 apic (如果硬體有問題,網路卡,scsi,等等)
- noevms2	關閉 EVMS2 模組的載入
- nolvm2	關閉 LVM2 模組的載入
- hdx=stroke    允許你在 BIOS 不支援大容量硬碟時,還是可以分割整個硬碟
- noload=module1[,module2[,...]]
		關閉特定核心模組的載入

現在啟動您的光碟,選擇核心(如果您對預設的 gentoo 核心不是很滿意)和開機參數。舉例來說,我們將以 gentoo 核心,使用 dopcmcia 為核心參數:

Activate your disk & #xff0c; Select Core & #xff08; If you are not satisfied with the default core gentoo xff0c; use as the core parameter #xff1a;

原始碼?4: 使用 Installation CD 開啟

boot: gentoo dopcmcia

您會看到一個開機歡迎畫面和 progress bar。如果您安裝的 Gentoo 使用 non-US 鍵盤,請確認您按下 F2 轉換到文字模式,並且遵照提示。如果在 10 秒內沒有作出選擇,預設值 (US 鍵盤) 會被選起,然後開機程序會繼續。一旦開機程序完成,您會自動登入為 "Live" Gentoo Linux 的 "root",最高權限使用者。您應該會有一個 root ("#")介面出現在目前的操控台。您可以使用 Alt-F2,Alt-F3, Alt-F4 來回切換。如要回到剛才的畫面請按 Alt-F1。

You will see an opener welcoming the screen and the progress bar. If you install Gentoo using non-US keyboard & #xff0c; confirm that you switch to text mode , and follow the hint. If you do not select xff0c; default value (US keyboard) within 10 seconds, you will be selected xff0c; then the open program will continue. Once the open program is completed xff0c; #xff09; you will automatically log into & #34; Live#34; Gentoo Linux & #34; root #34; #xff0c; maximum rights user. You should have a root & #xff08; #34; #34; #34; #xff09; appear on the current control table.

其他硬體設定

當 Installation CD 開啟時,它將會嘗試偵測所有系統上的硬體然後載入相關的核心模組來支援您的硬體。在大部份的例子,它做的相當不錯。但是,在某些情形下,它將無法自動載入相關的系統模組。如果 PCI 的自動偵測錯過了系統上某些硬體,您將需要手動載入它們。

When Installation CD is open & #xff0c; it will try to detect hardware on all systems and then load related core modules to support you. In most examples & #xff0c; it does quite well. But & #xff0c; in some cases & #xff0c; it will not be able to automatically load related system modules. If PCI's auto-detection misses some hardware on the system & #xff0c; you will need to manually load them.

以下的例子我們將載入 8319too 模組(支援某種網路介面):

The following examples will be loaded into 8319to module #xff08; support a network interface xff09; xff1a;

原始碼?5: 載入核心模組

# modprobe 8139too

如果你需要 PCMCIA 的支援,啟動 pcmcia init script:

If you need PCMCIA support & #xff0c; pccciainit script:

原始碼?6: 啟動 PCMCIA init script

# /etc/init.d/pcmcia start

選擇性:微調硬碟效能

如果您是一個高階使用者,您或許想要使用 hdparm 微調您的 IDE 硬碟。使用 -tT 的參數將讓您測試硬碟的效能(請多執行幾次來確定比較正確的數值):

If you are a high-level user & #xff0c; you may want to fine-tune your IDE hard disk using hdparm. Using parameters will allow you to test the effectiveness of the hard disk #xff08; please do more to determine the correct value xff09; #xff1a;

原始碼?7: 測試磁碟效能

# hdparm -tT /dev/hda

要微調,您可以使用以下任何範例(或是自行測試)。請將 /dev/hda 更改為您所要微調的磁碟:

To fine-tune xff0c; you can use any of the following examples xff08; or test xff09; on your own. Change to the disk xff1a that you want to fine-tune;

原始碼?8: 微調硬碟效能

啟動 DMA:                        # hdparm -d 1 /dev/hda
啟動安全的增加效能選項:  # hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda

選擇性:使用者帳號

如果您打算給予其他人安裝環境的權限,或是使用非 root 的權限執行 irssi (安全考量)您將需要建立相關的使用者帳號和更改 root 密碼。

If you want to give another person permission to install an environment & #xff0c; or use a non-root permission to execute irssi & #xff08; security measure & #xff09; you will need to create a related user account and change root password.

要更改 root 密碼,使用 passwd 工具:

To change root password & #xff0c; use passwd tool xff1a;

原始碼?9: 更改 root 密碼

# passwd
New password: (輸入新密碼)
Re-enter password: (再次輸入新密碼)

要建立使用者帳號,我們先需要輸入他們的帳號然後密碼。我們將使用 useraddpasswd 完成這些工作。下面的例子,我們將建立一個使用者叫做 "john"。

To build user accounts & #xff0c; we need to enter their accounts and passwords first. We will use useradd and passwd to do these tasks. The following example is #xff0c; we will create a user called & #34; john"

原始碼?10: 建立一個使用者帳號

# useradd -m -G users john
# passwd john
New password: (輸入 john 的密碼)
Re-enter password: (再次輸入 john 的密碼)

您也可以利用 su 從 root 變更到您剛建立的帳號:

You can also use su to change from root to the account you have just created xff1a;

原始碼?11: 變更目前使用者者

#  su john -

選擇性:在安裝過程中檢視文件

如果你想要在安裝過程中檢視 Gentoo 手冊(從 CD 或是線上),確定你已經建立使用者帳號(參閱選擇性:使用者帳號)。然後按下 Alt-F2 開啟新的終端機並且登入。

If you want to view the Gentoo Handbook (from CD or online) & #xff0c in the installation process, make sure you have a user account (see ). Then press to open a new terminal and log in.

如果你想要檢視 CD 上的文件,你可以馬上執行 links2 來閱讀:

If you want to view a file on a CD xff0c; you can do links2 to read xff1a;

原始碼?12: 檢視 CD 上的文件

# links2 /mnt/cdrom/docs/handbook/html/index.html

然而,如果你因為線上的 Gentoo 手冊比較新而想要閱讀他。你也可以使用 links2 ,但是你需要先完成設定您的網路這一章(否則你不能連接網際網路來檢視文件):

However, xff0c; if you want to read Gentoo's manual on the line because it's newer, you can also use links2 & #xff0c; but you need to finish the chapter on

原始碼?13: 檢視線上文件

# links2 http://www.gentoo.org/doc/en/handbook/handbook-x86.xml

你可以按下 Alt-F1 回到原來的終端機。

You can press to return to the original terminal.

選擇性:開啟 SSH 伺服器

如果您想在安裝過程中讓其他使用者使用您的電腦(或許是幫忙您安裝 Gentoo 的人),您將需要建立一個使用者帳號給他們,提供您的 root 密碼給他們(只有 在您 完全信任 的狀況下)。

If you want other users to use your computer in the installation process xff08; perhaps someone to help you install Gentoo xff09; xff0c; you will need to create a user account for them xff0c; provide them with your root password xff08; in a situation where you have complete confidence xff09;

要開啟 SSH 伺服器,執行以下指令:

To open SSH server & #xff0c; execute the following command & #xff1a;

原始碼?14: 開啟 ssh 伺服器

# /etc/init.d/sshd start

要使用 sshd,您將必須先設定您的網路。現在請繼續看設定您的網路

To use sshd, you will have to configure your network first. Go on to .

3. 設定網路

3.a. 你需要網路嗎?

誰可以不用他?

一般來說,你在使用 Universal 安裝光碟安裝 Gentoo 時並不需要連上網路。然而有一些情況你需要使用網路:

In general, #xff0c; you don't need to connect to the Internet when you install Gentoo using the Universal Disk. However, there are a number of situations where you need to use the Internet & #xff1a;

  • Universal 安裝光碟上的 stage3 檔案並不適合你的架構,你需要下載正確的 stage3 檔案。
  • 你需要安裝讓你連接到網路的程式,而這些程式在安裝光碟有支援但是原始碼並沒有放在 Universal 安裝光碟中(例如說,你可以使用安裝光碟連到網際網路,但是必需的原始碼 不在安裝光碟中)。
  • 你在安裝時需要遠端協助(使用 SSH 或是在 IRC 上討論)

我需要網路嗎?

如果要確定適合你的架構的 stage3 檔案是否存在,查看 /mnt/cdrom/stages 的內容確認有沒有適合的檔案。如果沒有的話,你仍人可以找一個相容的來用。

If you want to determine whether a stage3 file is suitable for your structure xff0c; see to confirm that there is a suitable file. If not, xff0c; you can still find a compatible file.

如果你反而想要使用針對你的架構最佳化的 stage3 檔案,而這並不存在的話,你需要使用網路下載合適的檔案。

If you want to use the stage3 file & #xff0c; if it does not exist; you need to use the network to download suitable files.

所以,如果你不需要網路,你可以掠過這章繼續閱讀 準備磁碟。不然的話,繼續底下的網路設定部份。

So xff0c; if you do not need the Internet xff0c; if you do not need the Internet . Otherwise xff0c; continue the network settings below.

3.b. 自動偵測網路

或許他已經可以工作了?

如果你的電腦是接在有 DHCP 伺服器的乙太網路下,非常有可能網路設定已經自動設好了。如果是這樣的話,你應該可以使用 Installation CD 上許多網路相關指令,像是 sshscppingirssiwgetlinks 之中任何一個。

If your computer is connected to an Ethernet with a DHCP server & #xff0c; it is very likely that the network settings have been set up automatically. If so, , you should be able to use a number of Internet-related instructions on an Installation CD & #xff0c; like ssh

如果網路已經設好了, /sbin/ifconfig 指令應該會顯示 lo 之外的網路裝置,像是 eth0:

If the network is already set xff0c; /sbin/ifconfig command should show network devices other than lo xff0c; like eth0xff1a;

原始碼?1: /sbin/ifconfig for a working network configuration

# /sbin/ifconfig
(...)
eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
		  inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
		  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
		  TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
		  collisions:1984 txqueuelen:100
		  RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
		  Interrupt:11 Base address:0xe800

選擇性:設定代理伺服器

如果您是透過代理伺服器連線至網路,您將需要在安裝過程中設定相關的代理伺服器資料。要定義一個代理伺服器非常簡單:您只需要設定一個變數包含著您的代理伺服器資料。

If you are connected via the proxy to the Internet xff0c; you will need to configure the proxy data in the installation process. To define a proxy xff1a, it is very simple xff1a; all you need to do is set a variable that contains your proxy data.

在大部份的例子裡,您可以直接將變數定義為代理伺服器的主機名稱。舉例來說,我們假設代理伺服器為 proxy.gentoo.org 而 port 為 8080。

In most examples & #xff0c; you can directly define the variable as the host name of the proxy server. & #xff0c; for example, we assume that the proxy server is proxy.gentoo.org and the port is 8080.

原始碼?2: 定義代理伺服器

(如果是 HTTP 代理伺服器)
# export http_proxy="http://proxy.gentoo.org:8080"
(如果是 FTP 代理伺服器)
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
(如果是 RSYNC 代理伺服器)
# export RSYNC_PROXY="proxy.gentoo.org:8080"

如果您的代理伺服器需要使用者帳號及密碼,請按照以下方式定義變數:

If your proxy requires a user account and password xff0c; define the variable xff1a in the following manner;

原始碼?3: 在代理伺服器變數加入帳號及密碼

http://username:password@proxy.gentoo.org:8080

測試網路

或許您會想要嘗試 ping 網路公司的 DNS 伺服器(可以在 /etc/resov.conf)或是您所選的網址,這只是為了查看您的封包是否能傳送網路,DNS 解析是否正常,等等﹍

Perhaps you would like to try the DNS server & #xff08 of the ping network company; either at /etc/resov.conf) or the URL you have selected xff0c; this is just to see if your package can send the network xff0c; DNS parsing is normal xff0c; et cetera_

原始碼?4: 測試網路

# ping -c 3 www.yahoo.com

您的網路有正常嗎?如果有,請跳過以下部份,從 準備磁碟 繼續。如果沒有,可惜,您將要更好運一點,請往下繼續 :)

xff1f; if there is xff0c; skip xff0c; continue from . Continue from

3.c. 自動網路設定

如果您的系統擁有多個網路卡,它們將會以 eth0eth1,等以此類推。請確認您的顯示卡可以使用。所有的文件將會以 eth0 為使用範例。

If your system has multiple web cards & #xff0c; they will be extrapolated by eth0eth1, etc. Please confirm that your display cards can be used. All files will be used by as an example.

如果您的網路不能自動作用,您可以使用有些安裝媒介提供的 net-setup(正常網路或是無線網路),adsl-setup(ADSL-使用者)。或是 pptp(PPTP使用者 - 只適用於 x86)。

If your network does not function automatically xff0c; you can use net-setup( from installed media; normal or wireless xff09; xff0c; adsl-setup( ADSL-user#xff09; or #xff08; PPTP user - suitable for x86ff09;

如果您使用的安裝方式沒有提供以上所說明的工具或是無法正常使用網路,請從 手動網路設定 繼續。

If the installation method used does not provide the tools described above or does not allow normal use of the Internet xff0c; please continue with manual network settings from .

預設:使用net-setup

如果網路沒有自動設定,設定網路最間單的方式就是執行 net-setup

If the network does not automatically set & #xff0c; the most single way to set the network is to run

原始碼?5: 執行 net-setup

# net-setup eth0

net-setup 將會問您一些關於您的網路環境的問題。當您完成的時候,您應該會有一個可用的網路連線。就和剛剛所講的一樣,您應該要測試您的網路連線。如果測試正常,恭喜!您現在可以開始安裝 Gentoo 了。請跳過以下的部份從 準備磁碟 開始。

will ask you some questions about your network environment. & #xff0c; you should have an available network connection when you are done. xff0c; you should test your network connection. If the test is normal xff0c; #xff01; congratulations; now you can install Gentoo. Please skip the following parts from .

如果您的網路還是無法正常運作,請從 手動網路設定 繼續。

If your network still does not function properly xff0c; continue from .

其他選擇:使用 RP-PPPoE

假設您需要 PPPoE 連線至網路,Installation CD (任何版本)都會有提供簡單的 rp-pppoe 供您使用。使用我們提供的 adsl-setup 程序來設定您的連線。您將會被帶入網路裝置連線到 adsl 數據機的畫面。這個畫面包括了您的帳號,密碼,DNS IP 和問您是否需要簡易的防火牆。

Assuming that you need a PPOE connection to the network & #xff0c; Integration CD & #xff08; any version & #xff09; you will have a simple rp-pppoe. Use the program that we provide to configure your connection. You will be brought into the network device to the image of the adsl mode mode. This image includes your account number #xff0c; password #xff0c; DNS IP and ask if you need an easy firewall.

原始碼?6: 使用 rp-pppoe

# adsl-setup
# adsl-start

如果有出錯,請仔細檢查 /etc/ppp/pap-secrets 或是 /etc/ppp/chap-secrets 查看您的帳號及密碼。如果您的網路裝置不存在,您將要載入相關的網路模組。在這個狀況,您應該從 手動網路設定 繼續。

Check your account and password if there is an error xff0c; if your network device does not exist xff0c; you will load the associated network module xff0c; in this situation you should continue from

如果一切正常,請從 準備磁碟 繼續。

If everything is normal xff0c; please continue with the disk from .

其他選擇:使用 PPTP

注意: 只有 x86 架構有 PPTP 支援

如果您需要 PPTP 支援,您可以使用我們的 Installation CD 提供的 pptpclient。但是您將需要先確定您的設定無誤。編輯 /etc/ppp/pap-secrets 或是 /etc/ppp/chap-secrets 確定它包含著正確的帳號及密碼:

If you need PPTP support & #xff0c; you can use pptpclient from our Installation CD. But you will need to make sure that your configuration is correct. or make sure that it contains the correct account number and password #xff1a;

原始碼?7: 編輯 /etc/ppp/chap-secrets

# nano -w /etc/ppp/chap-secrets

然後依照需要調整 /etc/ppp/options.pptp

原始碼?8: 編輯 /etc/ppp/options.pptp

# nano -w /etc/ppp/options.pptp

當設定完成,只要執行 pptp(包括您在 options.pptp 不能設定的)連線至伺服器:

When settings are completed xff0c; only pptp( including xff09 which you cannot set at options.pptp; connect to server xff1a;

原始碼?9: 連線至撥號伺服器

# pptp <server ip>

現在從 準備磁碟 繼續。

From

3.d. 手動網路設定

載入相關網路模組

當 Installation CD 啟動時,它會偵測您所有的硬體裝置然後載入相關的核心模組(驅動程式)來支援您的硬體。在大部份的例子來說,它做的非常好,但是在某些情況下,它或許無法自動載入您所需要的核心模組。

When Installation CD starts & #xff0c; it detects all your hardware devices and then loads the associated core module xff08; driver xff09; supports your hardware. In most cases xff0c; it does very well xff0c; in some cases xff0c; it may not automatically load the core module you need.

如果您無法使用 net-setup 或是 adsl-setup,那您就可以假設您的網路卡無法在即時被找到。這代表著您將要手動載入相關核心模組。

If you cannot use or adsl-setup, then you can assume that your network card cannot be found instantaneously. This means that you will manually load the core module.

要找出我們可以用的核心模組,使用 ls

To find the core modules we can use xff0c; use

原始碼?10: 搜尋提供的模組

# ls /lib/modules/`uname -r`/kernel/drivers/net

如果您找到您的網路卡所用的驅動程式,使用 modprobe 載入這個核心模組:

If you find a driver for your network card xff0c; load this core module xff1a using modprobe;

原始碼?11: 使用 modprobe 載入核心模組

(舉例來說,我們將載入 pcnet32 模組)
# modprobe pcnet32

要檢查您的網路卡是否被偵測到,使用 ifconfig 來偵測。一個被偵測到的網路卡將會類似以下被列出來:

To check if your network card has been detected xff0c; to detect it using ifconfig. A detected network card will be listed as xff1a;

原始碼?12: 測試網路卡是否可用,成功

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

如果您收到以下錯誤,那麼網路卡則是沒被偵測到:

If you receive the following error xff0c; then the Internet card is not detected xff1a;

原始碼?13: 測試網路卡是否可用,失敗

# ifconfig eth0
eth0: error fetching interface information: Device not found

假設您現在有一張被偵測到的網路卡,您可以重新嘗試 net-setup 或是 adsl-setup (現在應該可以用了),但是,對於其他人,我們現在將為您解釋如何手動設定網路。

Suppose you now have a detected Internet card & #xff0c; you can try again net-setup or & #ff08; now it should be xff09; xff0c; xff0c; for others xff0c; now we will explain how to customize the network manually.

選擇以下其中一個適用的部份來設定您的網路:

Select one of the following suitable parts to configure your network & #xff1a;

使用 DHCP

DHCP (Dynamic Host Configuration Protocol) 可以讓您自動索取相關網路資料( IP位置, netmask,broadcast address,gateway,nameserver 等等)。但是在您的網路內一定要有一個可用的 DHCP 伺服器(或是您的提供商提供 DHCP 服務)。要網路介面自動索取相關資料,使用 dhcpcd

DHCP & #xff08; Dynamic Host Consultation Protocol & Xff09; You can automatically ask for network-related data (IP Location & #xff0c; netmask, BroadcastAdress, Gateway #xff0c; Nameserver & #xff09; but there must be an available DHCP server on your network #xff08; or your provider provides DHCP services & #xff09;

原始碼?14: 使用 dhcpcd

# dhcpcd eth0
一些網路管理員可能會要求你使用
DHCP 伺服器提供的主機名稱及領域名稱。
如果是這種情況,使用
# dhcpcd -HD eth0

如果成功(嘗試 ping 一些網路伺服器,如 Google),那您就可以跳到下個部份到 準備磁碟

If xff08; trying to ping some web servers xff0c; e.g. Google) xff0c; then you can jump to the next part .

準備無線網路

注意: 不是所有的 Installation CD 都有 iwconfig 的指令。如果真的碰上這種情況,您可以參考 linux-wlan-ng 計畫

如果您有一張無線 (802.11)網路卡,您將需要在繼續前先設定好您的無線網路。如要查看目前的設定,您可以使用 iwconfig。執行 iwconfig 將會列出類似以下的訊息:

If you have a wireless & #xff08; 802.11) web card & #xff0c; you will need to set your wireless network before continuing. If you want to see the current settings & #xff0c; you can use iwconfig. Run iwconfig will list the following messages #xff1a;

原始碼?15: 顯示目前的設定

# iwconfig eth0
eth0      IEEE 802.11-DS  ESSID:"GentooNode"
Mode:Managed  Frequency:2.442GHz  Access Point:
00:09:5B:11:CC:F2
Bit Rate:11Mb/s   Tx-Power=20 dBm
Sensitivity=0/65535
Retry limit:16   RTS thr:off
Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid  nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84

注意: 有些網路卡的裝置名稱或許是 wlan0ra0 而不是 eth0。不要加任何參數執行 iwconfig 確認裝置的名稱。

對於大部份的使用者,只需要更改兩個重要的設定,ESSID(無線網路名稱)或是 WEP 金錀。如果 ESSID 和無限網路連接點已經顯示出您沒有使用 WEP,那您的網路已經好了。如果您需要更改您的 ESSID,或是加入一個 WEP 金錀,您可以執行以下指令:

For most users & #xff0c; just need to change two important settings & #xff0c; ESSID( wireless network name & #xff09; or WEP gill. If ESSID and unlimited network connection points already show that you are not using WESP, your network is ready. If you need to change your ESSID& #xff0c; or if you want to add a WEP gold & #xff0c; you can execute the following command xff1a;

原始碼?16: 更改 ESSID 和/或 加入 WEP 金錀

(這將會把網路名稱設定為 "GentooNode")
# iwconfig eth0 essid GentooNode

(這將設定一個 hex WEP 金錀)
# iwconfig eth0 key 1234123412341234abcd

(這將設定一個 ASCII 金錀 - 起始為 "s:")
# iwconfig eth0 key s:密碼

您將可以再次使用 iwconfig 來確認您的設定。當您的無線網路已經可以使用,您將可以從下一個部份繼續(了解網路詞彙)或是使用之前所談到的 net-setup 工具設定。

You will be able to confirm your settings again by using iwconfig. When your wireless network is available , you will be able to continue from the next part ( tool setup.

了解網路詞彙

注意: 如果您知道您的 IP 位址,broadcast address,netmask 和 nameserver,那您可以跳過這個階段從 使用 ifconfig 和 route 繼續。

如果以上都失敗,您將需要手動設定網路。不要怕,這個很簡單。但是我們將要為您解釋一些能幫助您的網路資訊方便您進行設定。當您讀完這個部份時,您將會知道什麼是一個 gateway,什麼是 netmask,和 為什麼會有 broadcast 位址和為什麼您需要 nameservers

If all of these fail xff0c; you will need to customize the network manually. Don't be afraid of xff0c; this is simple. But we will explain to you some of the information that will help you to set it up. When you read this part, xff0c; you will know what is a gateway, what is , and why there are broadcast addresses and why you need .

在一個網路,機器都是用 IP 位置(Internet Protocol address)來辨別的。這些地址為四組於 0 到 255 之間所組合的。這就是我們所看到的。在現實來說,這些 IP 位址是 32 位元的(一和零)。現在來看一個範例:

This is what we see. In reality, these IP addresses are 32-bit xff08; 1 xff09;

原始碼?17: IP位址的範例

IP Address (numbers):   192.168.0.2
IP Address (bits):      11000000 10101000 00000000 00000010
                        -------- -------- -------- --------
                           192      168       0        2

在這個網路內這個 IP 位址是獨特的,(例:所有您可以連到的主機都一定有一個個別的 IP 位址)。為了要可以分辨每個網路內的 IP 位址,IP 位址可以分成兩種: 網路主機

This IP address is unique on this network xff0c; xff08; xff1a; all you can connect to must have a different IP address xff09;. In order to distinguish IP address xff0c; IP address can be divided into two xff1a; net and .

netmask 是用來分開,另一個一和零的組合。這將會把一個網路的 IP 區域化。一部份為網路的部份,另一部份為主機的部份。和平常一樣,netmask 可以寫為 IP 位置。

is used to separate xff0c; another one-and-zero combination. This will localize the IP of one network. One part is part of the network xff0c; the other part is part of the host. As usual xff0c; netmask can be written as IP location.

原始碼?18: 網路和主機的區別範例

IP-address:    192      168      0         2
            11000000 10101000 00000000 00000010
Netmask:    11111111 11111111 11111111 00000000
               255      255     255        0
           +--------------------------+--------+
                    網路                 主機

換句話說, 192.168.0.14 還是我們範例網路的一部份,但是 192.168.1.2 不是。

In other words, xff0c; 192.168.0.14 is still part of our example network xff0c; but 192.168.1.2 is not.

broadcast(廣播)位址為一個 在同一個網路上的一個 IP 位址,但是只有一個主機部份。每個在網路上的主機將聽取這個 IP 位置。這是用來聽取廣播封包的意思。

broadcast( radio & #xff09; address is an IP address & #xff0c on the same network; but there is only one host part. Each host on the network will listen to the IP position. This is what it means to listen to the package.

原始碼?19: 廣播位址

IP-address:    192      168      0         2
            11000000 10101000 00000000 00000010
Broadcast:  11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     網路                主機

為了要確保可以連線至網路,您一定要知道那個主機分享網路連線。這個主機則是叫做 gateway。它也是一個普通的主機,它將會有一個常見的 IP 位置(如 192.168.0.1)。

In order to ensure access to the Internet xff0c; you must know that the host shares the network connection. The host is called gateway. It is also an ordinary host xff0c; it will have a common IP position xff08; e.g. 192.168.0.0.1xff09;

我們之前講過,每台主機都有自己的 IP 位址。為了要能以名稱(而不是 IP 位置)連線到主機上,您將需要一個翻譯名字的服務(例:dev.gentoo.org)到一個 IP 位址(例:64.5.62.82)。這種服務就叫做 name service(名稱伺服器)。要使用這個服務,您一定要在 /etc/resolv.conf 設定一個相關的 name server

We have spoken before about xff0c; each host has its own IP address. To be able to use the name xff08; not the IP position xff09; link to host xff0c; you will need a service that translates the name xff08; xff1a;

在部份的例子,您的 gateway 也會提供 nameserver。不然您將要輸入您的網路提供商所提供給您的。

In some examples & #xff0c; your dateway will also provide namesserver. Otherwise you will be able to enter the information provided to you by your network provider.

總結,您將要在繼續之前擁有以下資料:

Summary & #xff0c; you will have the following data & #xff1a before continuing;

網路類別範例
您的 IP 位置192.168.0.2
Netmask255.255.255.0
Broadcast192.168.0.255
Gateway192.168.0.1
Nameserver(s)195.130.130.5, 195.130.130.133

使用 ifconfig 和 route

設定您的網路需要三個步驟。第一,我們將使用 ifconfig 設定我們的 IP 位置。然後我們將需要 route(路由)到我們的 gateway 上。然後在將名稱伺服器放到 /etc/resolv.conf

Configure your network takes three steps. First & #xff0c; we will set our IP position using ifconfig. Then we will need ( route #xff09; to our gateway. Then we will place the name server at .

要設定 IP 位置,您將需要您的 IP 位置,廣播位置和 netmask。然後執行以下指令,將 ${IP_ADDR} 更改成您的 IP 位置, ${BROADCAST} 為您的廣播位置和 ${NETMASK} 為您的 netmask:

To configure IP location & #xff0c; you will need your IP location & #xff0c; radio location and netmask. Then run the following command & #xff0c; change for your broadcast location and for your netmaskxff1a;

原始碼?20: 使用 ifconfig

# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

現在使用 route 設定您的路由。將 ${GATEWAY} 更改為您的 gateway IP 位置:

Set your path now using route. Change to your dateway IP positionxff1a;

原始碼?21: 使用 route

# route add default gw ${GATEWAY}

現在使用您最喜歡的編輯器(以我們的例子,我們使用 nano)編輯 /etc/resolv.conf

Use your favorite editor & #xff08; use our example & #xff0c; use ) edit

原始碼?22: 建立 /etc/resolv.conf

# nano -w /etc/resolv.conf

現在將您的 nameserv (名稱服務器)按照以下的版面填入。請確定將 ${NAMESERVER1}${NAMESERVER2} 更改為相關的名稱服務器的位置:

Now fill in your nameserver & #xff08;name server & #xff09; based on the following pages. Make sure that and change to the location of the associated name serverxff1a;

原始碼?23: /etc/resolv.conf 版面

nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

完成了。現在 ping 一些網路伺服器(如 Google)測試您的網路連線。如果成功,恭喜!您現在已經可以準備安裝 Gentoo 了。請從 準備磁碟 繼續

Complete. Now ping & #xff08; e. g. Google) test your network connections. If successful & #xff0c; Congratulations & #xff01; you can now install Gentoo. http://ahref=http://www.gentoo.org/doc/zh_tw/handbook/2005.0/handbook-x86.xml.xml?style= printable&full#61; 1#book_1_chap4"rel=nofollow>

4. 準備磁碟

4.a. 介紹區塊裝置

區塊裝置(Block Devices)

我們將仔細的介紹 Gentoo Linux 和 整體的Linux 的磁碟方式,包括 Linux 檔案系統,分割區,和區塊裝置。然後,當您了解磁碟和檔案系統,您將會學到如何為您的 Gentoo Linux 安裝設定分割區和檔案系統。

We will introduce Gentoo Linux and Linux as a whole to disks & #xff0c; including Linux file systems & #xff0c; partitions & #xff0c; and block devices. Then #xff0c; when you understand disks and file systems & #xff0c; you will learn how to install partitions and file systems for your Gentoo Linux.

首先,我們將要介紹 區塊裝置。最有名的區塊裝置大概就是代表 Linux 系統上的第一個 IDE 磁碟 /dev/hda,如果您的系統使用 SCSI 或 SATA 磁碟,那您的第一個磁碟將會是 /dev/sda

First xff0c; we will refer to . The most famous block device is probably the first IDE disk on the Linux system /dev/hda, if your system uses SCSI or SATA disk xff0c; then your first disk will be /dev/sda.

以上的區塊裝置代表著磁碟的介面。使用者可以不用擔心您的磁碟是否為 IDE,SCSI 或是其他,並且使用程式來使用這些區塊裝置。這個程式可以在磁碟上寫入多個隨機的 512 byte 區塊。

. The user can write multiple random 512 byte blocks on disk without worrying whether your disk is IDE, SCSI or other xff0c; and using programs to use these blocks.

分割區

理論上雖然您可以使用整個磁碟放置您的 Linux 系統,但是實務上幾乎沒有人這麼做。整個磁碟將會被分為其他小一點的大小,並可以更好的管理。x86 的系統叫他 分割區(partitions)

Theoretically, you can use the entire disk to place your Linux system & #xff0c; but hardly anyone does. The entire disk will be divided into other smaller sizes & #xff0c; and it can be better managed. The x86 system is called .

分割區總共有三類:primaryextendedlogical

There are three types of partitions: #xff1a; primariyextended and logical.

一個 primary 分割區是一個包含 MBR(Master Boot Record)的分割區。一個 MBR 非常小(512 byte)只能定義成四個分割區(從 /dev/hda1/dev/hda4)。

A partition is a partition containing MBR( Master Boot Record) a MBR very smallxff08; 512 byte&#ff09; only four partitions xff08; from to /dev/hda4#ff09;

一個 extended 分割區是一個特別的 primary 分割區(意思是說 extended 分割區一定要從四個可用的 primary 分割區內擴展)而可以建立更多的分割區。這種分割區原本是不存在的,但是四個分割區太少了,它會誕生是因為要擴展而不會遺失反向相容。

A partition is a special primarid partition & #xff08; meaning that extrated partitions must be expanded from within four available primarid partitions & #xff09; and more partitions can be created. Such partitions are non-existent xff0c; four partitions are too few xff0c; they are born to expand without losing their face.

一個 logical 分割區是在 extended 分割區內。他們的定義不是放在 MBR,但是是放在 extended 分割區。

A logical partition is located in the extended partition. Their definition is not MBR, but in the extended partition.

進階儲存

x86 的 Installation CD 支援 EVMS 和 LVM2。EVMS 和 LVM2 將會增強您設定分割區的彈性度。在安裝過程中,我們將會將焦點放在 "正常" 的分割方式,只是為了讓您知道 EVMS 和 LVM2 有被支援。

The X86 Establishment CD supports EVMS and LVM2. EVMS and LVM2 will enhance the impactivity of the partitions. During the installation process & #xff0c; we will focus on & #34; normal #34; split & #xff0c; just so you know that EVMS and LVM2 are supported.

4.b. 策劃一個分割區計畫

預設的分割區策劃

如果您不打算策劃一個分割計畫,您可以使用手冊內的分割規劃:

If you do not intend to plan a split plan xff0c; you can use the partition scheme in the manual xff1a;

分割區檔案系統大小說明
/dev/hda1ext232M開機分割區(Boot partition)
/dev/hda2(swap)512MSwap 分割區
/dev/hda3ext3磁碟剩下的空間根 或是 主分割區(Root partition)

如果您想知道一個分割區該要多大,或是需要幾個分割區,請繼續閱讀。不然請從 使用 fdisk 分割您的磁碟 開始分割。

If you want to know how much a partition should be xff0c; or if several partitions xff0c are required; read more. Otherwise, split from using fdisk.

多少和多大?

多少分割區通常是按照您的使用環境。舉例來說,如果您有很多個使用者,您就會因為安全問題和能夠簡易備份將您的 /home 分開。如果您將 Gentoo 安裝為郵件伺服器那您的 /var應該分開,因為郵件通常是放在 /var。選擇好的檔案系統將會提昇您的效能。遊戲伺服器因為大多數的遊戲伺服器都是安裝在 /opt 所以通常會將 /opt 分開。原因很和 /home 類似:安全問題和備份。你一定會想分給 /usr 比較大的空間:不只是因為他包含大部份的程式,Portage 樹,除了他儲存的各種原始碼知外,本身需要 500 Mb 的空間。

If you install Gentoo as an e-mail server, your should separate xff0c; if you have many users xff0c; if you have a security problem and a simple backup, you will separate your . If you install Gentoo as an e-mail server, your should separate xff0c; since e-mails are usually .

如您所見,不同的方式是彼此相依的。不同的分割區或是容量將會有以下優點:

As you can see xff0c; different ways depend on each other. Different partitions or capacity will have the following advantages xff1a;

  • 您可以選擇適合個別分割區的檔案系統提高效能
  • 您的系統不會因為一個分割區或是容量失效而完全終止
  • 如果必要,檔案系統檢查所費的時間將會減少,並且可以以平行方式進行(雖然這個優點 比較適合多分割區)
  • 安全性可以因為某些分割區以唯讀掛載而加強,nosuid(setuid機會被略過), noexec(執行檔將會被掠過)等等也可以。

但是,多個分割區也有一個很大的缺點:如果沒有完好的設定,您將會看到一個分割區上的空間不夠或是一個分割區上的空間太多。SCSI 和 SATA 也有 15 個分割區的限制。

But xff0c; multiple partitions also have a significant defect xff1a; if there is no perfect configuration xff0c; you will see that there is not enough space in a partition or too much space in a partition. SCSI and SATA also have 15 partitions.

以範例來分割,我們將使用一個 20GB 的硬碟,為手提電腦的示範(包含著網頁伺服器,郵件伺服器,gnome,﹍):

Split & #xff0c by example; we will use a hard disk & #xff0c of 20GB; a manual & #xff08; contains web server & #xff0c; mail server & #xff0c; gnome #xff0c; xff09; xff1a;

原始碼?1: 檔案系統使用範例

Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <not mounted>
(預留 2GB 空間)

這邊的 /usr 的分割區是快用完的(佔用83%),但是當所有的軟體已經安裝完畢後,/usr就不會再急速的增加。關於/var,大部份的人或許會認為分配給 /var 的空間太大。但是,Gentoo 將會在 /var/tmp/portage 內進行所有檔案的編譯,所以如果您不想編譯大程式的話至少要有 1G,而如果打算同時編譯大的程式如 KDE 和 OpenOffice.org,那麼 /var 最好是有 3G 以上的剩餘空間。

partitions are fast-used xff08; they take 83% xff09; xff0c; but when all software is installed xff0c; . xffoc; xffoo; Gentoo at .

4.c. 使用 fdisk 分割您的磁碟

以下部份將解釋如何使用之前所策劃的進行分割:

The following section will explain how to use previously planned partitions #xff1a.

分割區說明
/dev/hda1開機分割區
/dev/hda2Swap 分割區
/dev/hda3主分割區(Root)

請按照個人所需更改您的分割架構。

Please change your partition structure according to your personal needs.

查看目前的規劃的分割區

fdisk 是一個強大並且受歡迎的磁碟分割工具。使用您的磁碟上的 fdisk (按照我們的範例,我們將使用/dev/hda):

is a powerful and popular disk partitioning tool. Use your disk fdisk & #xff08; follow our example #xff0c; we will use ) #xff1a;

原始碼?2: 開始 fdisk

# fdisk /dev/hda

fdisk 開始後,您將會看到以下的畫面:

When fdisk starts xff0c; you will see xff1a below;

原始碼?3: fdisk 介面

Command (m for help): 

按下 p 顯示您的磁碟目前的分割區設定:

Press p to display the current partition settings of your disk

原始碼?4: 範例分割區設定

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help): 

這個磁碟包含著七個 Linux 檔案系統(顯示為 "Linux")和一個 swap 分割區(顯示為 "Linux Swap")。

This disk contains seven Linux file systems & #xff08; displayed as & #34; Linux" & #xff09; and a swap partition & #xff08; displayed as & #34; Linux Swap" & #xff09;

移除所有分割區

我們將要先把已經存在的分割區一除掉。按下 d 刪除。舉例來說要刪除已經存在的 /dev/hda1

We will first remove existing partitions. Press d. For example, delete

原始碼?5: 刪除一個分割區

Command (m for help): d
Partition number (1-4): 1

這個分割區將會被顯示為刪除。當您輸入 p 的時候您將會看不到所刪除的分割區,但是只會在您儲存後發揮功效。如果誤殺了某個分割區然後想要重來,按下q 然後 enter 您的分割區將不會被刪除。

This partition will be shown as a deletion. When you enter p, you will not see the deleted partition xff0c; but you will only use it when you save it. If you miss a partition and then want to restart xff0c; press , then your partition will not be deleted.

現在,假設您想要刪除所有系統上的分割區,請先按 d 然後要刪除的分割區編號再按下 p 刷新分割區列表。最後您將會將所有的分割區刪除:

Now xff0c; Assuming you want to delete partitions from all systems xff0c; press d and then click on p to update the partition list. Finally, you will delete all partitions xff1a;

原始碼?6: 空的分割區列表

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

現在您的分割區列表已經空了,我們可以開始建立分割區了。我們將會使用之前所討論到的預設的分割計畫。當然,如果您有自己的分割計畫,請按照我們的方式以此類推!

Now your list of partitions is empty xff0c; we can start creating partitions. We will use the default partition plan discussed earlier. xff0c; if you have your own partition plan xff0c; please extrapolate xff01 in our way;

建立開機分割區

我們將要先建立一個小的開機分割區。按下 n 建立一個分割區然後按下 p 選擇 primary partition,再按下 1 選擇第一個 primary 分割區。當您看到 first cylinder 時,按下 enter,然後看到 last cylinder 輸入 +32M 來建立一個 32 Mbyte 大小的分割區:

We will first build a small startup partition. Press to create a partition and then press p to select the primary partition, press 1 to select the first Primary partition. When you see first cylinder & #xff0c; then see last cylinder enter to create a 32-Mbyte-sized partition #xff1a;

原始碼?7: 建立開機分割區

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (按下 Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

現在,當您按下 p 時,您將會看到以下的顯示:

xff0c; when you press p xff0c; you will see xff1a below;

原始碼?8: 已建立的開機分割區

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

我們將需要將這個分割區設定為可開機。按下 a 的開關然後選擇 1。讓可開機旗標放在這個分割區上。如果您再按一次 p,您將會看到 "Boot" 欄位有一個 *

We will need to set this partition as openable. Press a and select 1. Let the openable flag be placed on this partition. If you press p.

建立 Swap 分割區

現在我們需要建立 swap 分割區。按下 n 建立一個新的分割區,然後 p 告訴 fdisk 您要一個 primary 分割區。然後按下 2 建立第二個 primary 分割區。當您看到 first cylinder,按下 enter。然後當您看到 last cylinder,輸入 +512M 來建立一個 512MB 大小的分割區。當您完成的時候,按下 t 來選擇分割區類別。接著輸入 82 將分割區類別選為 "Linux Swap"。當您完成的時候,按下p 應該會看到類似以下的畫面:

Now we need to create a swapy partition. Press n to create a new partition xff0c; then

原始碼?9: 建立 swap 分割區後的列表

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap

建立主分割區(Root)

最後,我們需要建立主分割區。按下 n 建立一個新的分割區,然後 p 告訴 fdisk 您要一個 primary 分割區。然後輸入 3 建立第三個 primary 分割區,在我們的例子為 /dev/hda3。當您看到 first cylinder,按下 enter。當您看到 last cylinder,按下 enter 來使用剩餘的空間。完成這些步驟後,按下 p 您應該會看到類似以下的列表:

Finally xff0c; we need to create the main partition. Press to create a new partition xff0c; then to tell fdisk you want a private partition. Then enter 3 to create the third prism xff0c; after our example is . When you see first cylinder #xff0c; when you see the last cylinder#xff0c; use the remaining space at the bottom.

原始碼?10: 建立主分割區後的列表

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux

儲存分割區規劃

要儲存然後離開 fdisk,按下 w

To save and then leave fdisk, press w.

原始碼?11: 儲存然後離開 fdisk

Command (m for help): w

現在您的分割區已經建立完成了,您可以從 建立檔案系統 繼續。

Now your partition has been set up xff0c; you can continue to build file systems from .

4.d. 建立檔案系統

介紹

現在您的分割區已經建立完成了,我們將需要把檔案系統放到它們上面。如果您不在乎該使用那個檔案系統,並且滿意手冊內我們使用的,請從 將檔案系統套用到分割區上 繼續。不然請繼續閱讀關於可用的檔案系統。

Now your partition has been set up xff0c; we will need to put the file system on top of them. If you don't care about using the filesystem xff0c; and if you are satisfied with the xff0c that we use in the manual, please continue from . Otherwise, please continue reading the available filesystems.

檔案系統?

Linux 核心支援多個檔案系統,我們將解釋 ext2,ext3,ReiserFS,XFS 和 JFS。因為這些是最常使用的檔案系統。

Linux core supports multiple file systems & #xff0c; we will explain ext2, ext3, ReiserFS, XFS and JFS. These are the most commonly used file systems.

ext2 是一個舊的 Linux 檔案系統,沒有日誌功能. 啟用的時間通常需要很久。目前有許多 日誌型態 的檔案系統可以以更快的速度及更好的效率完成系統啟用和檢查。

ext2 is an old Linux file system & #xff0c; there is no journal function. It usually takes a long time to start. There are many file systems that can be accessed and checked faster and more efficiently.

ext3 為 ext2 的日誌版,提供了 metadata 日誌系統 並且可以快速地使用日誌系統復原。ext3 是個相當不錯並且可靠的檔案系統. 它有額外的 hashed b-tree 索引功能將會開啟幾乎在任何情況內的狀態為高效能。你可以在 mke2fs 指令加上 -O dir_index 啟動這個功能。簡單來說,ext3 是一個很棒的檔案系統。

ext3 provides an ext2 journal & #xff0c; provides a metadata journal system and allows quick use of the journal system to restore it. Ext3 is a pretty good and reliable file system. It has an extra hashed b-tree indexing function that will be effective in almost any situation. You can add to the command . Simply #ff0c;ext3 is a great file system.

ReiserFS 整體來說是個相當不錯的系統,它處理小型檔案(少於4kb)時效能會比 ext2 和 ext3 來的好。他使用的是 B*-tree 為基礎的檔案系統. 另外也能很有效率地處理大型檔案。Linux 核心版本 2.4.18+ 後,ReiserFS 是一個相當有值得推薦的系統, 從很少,到很多檔案。ReiserFS 都可以處理的非常好。開機分割區並不建議使用此檔案系統。

ReiserFS as a whole is a rather good system & #xff0c; it works better with small files (less than 4kb) than with ext2 and ext3. He uses B*-tree as a base file system. He also handles large files efficiently. Linux core version 2.4.18+ xff0c; ReiserFS is a fairly recommendable system, from xff0c; to many files. ReeseFS can handle very well. Open partitions are not recommended to use the filesystem.

XFS 是一個 metadata 日誌系統,並且擁有完整的功能及針對延展性最佳化。如果您使用高速 SCSI或是纖維的儲存裝置,並且有持續不斷的電源供應,我們才推薦您使用 XFS。 如果沒有,請使用其他檔案系統。因為 XFS 大量地將要轉送的資料快取在記憶體中,設計不好的程式(的確有一些程式在寫入磁碟時不做一般的預防措施)可能當系統意外斷電時損失大量的資料。

XFS is a metadata journal system xff0c; and has complete functionality and needle optimization for extension. If you use a high-speed SCSI or fiber storage device xff0c; and there is a continuous power supply xff0c; you are only recommended to use XFS. If there is no xff0c; use other file systems. Because XFS quickly removes the data to be transferred in memory xff0c; poorly designed programs (some programs do not do normal precautions when writing disks) may lose a lot of data when the system has unexpected power outages.

JFS 是 IBM 發展的高效能日誌系統。目前雖然已經可以算是個完成品,關於他的穩定度並沒有太多的優點及缺點。

JFS is an efficient journal system developed by IBM. Although it can now be counted as a finished product & #xff0c; there is not much good or bad about his stability.

將檔案系統套用到分割區上

要把檔案系統建立到一個分割區或是容量上可使用一些為個別檔案系統所設計的工具:

To create a file system in a partition or with a capacity to use tools designed for a separate file system & #xff1a;

檔案系統建立指令
ext2mke2fs
ext3mke2fs -j
reiserfsmkreiserfs
xfsmkfs.xfs
jfsmkfs.jfs

以我們的範例來說,開機分割區(在我們的例子裡為 /dev/hda1)為 ext2 和主分割區(在我們的例子為 /dev/hda3)為 ext3,您將要使用:

In our case xff0c; Startup partition xff08; in our case ) in the case of ext2 and main partition xff08; in our case ) in the case of ext3, you will use xff1a;

原始碼?12: 將檔案系統套用到分割區上

# mke2fs /dev/hda1
# mke2fs -j /dev/hda3

現在檔案系統已經建立到我們剛建立完成的分割區上了(或是logical 容量)。

Now the file system has been set up to the partition we have just created #xff08; or the logical capacity & #xff09;

啟用 Swap 分割區

mkswap 是用來起始 swap 分割區的指令:

mkswap is a command to start swap partitionsxff1a;

原始碼?13: 建立 swap 簽名

# mkswap /dev/hda2

要啟用 swap,使用 swapon 指令:

To enable swap, use swapon commandsxff1a;

原始碼?14: 啟動 swap

# swapon /dev/hda2

現在建立然後啟動 swap。

Now build and start swap.

4.e. 掛載

現在您的分割區已經起始和放置檔案系統了,接下來我們該把這些分割區掛載起來。使用 mount 的指令。不要忘了建立相關的掛載目錄,以我們的分割來說只掛載主分割區和開機分割區:

Now your partition has started and placed the file system xff0c; we should then load these partitions. Use the command mount. Don't forget to create the relevant upload directory xff0c; only the main partition and the open partition #xff1a for our split;

警告: 由於 e2fsprogs 套件中的某個臭蟲,如果您要使用 ext3 檔案系統,您需要明確的使用 mount -t ext3 選項。

原始碼?15: 掛載分割區

# mount /dev/hda3 /mnt/gentoo
(針對 ext3 分割區:)
# mount -t ext3 /dev/sda1 /mnt/gentoo

# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

注意: 如果您要將 /tmp 放在不同的分割區,記得掛載後將它的權限更改為: chmod 1777 /mnt/gentoo/tmp。這也適用於 /var/tmp

我們將需要掛載 proc 檔案系統(一個核心的虛擬介面)並且把它放在 /proc 。但是我們先需要將我們的檔案放到分割區內。

We will need to load the proc file system & #xff08; a core virtual interface & #xff09; and put it at . But first we need to put our files in the partition.

現在從 使用安裝檔安裝 Gentoo 繼續。

From .

5. Gentoo 安裝檔案

5.a. 安裝一個 Stage 壓縮檔

設定正確的日期/時間

在您繼續之前,您將需要檢查您的日期/時間。一個設定錯誤的時鐘將會在未來的時候造成一些奇怪的錯誤!

xff0c; you will need to check your date/time before you continue. A setting error will cause some strange errors in the future xff01;

要檢查正確的日期/時間,執行date

To check the correct date/time & #xff0c; execute date

原始碼?1: 檢查日期/時間

# date
Fri Mar 29 16:21:18 CEST 2005

如果顯示出的日期/時間是錯誤的,使用 date MMDDhhmmYYYY 進行更新(M 為月,D為日,h為時,m為分,和 Y為年份)。舉例來說,要將日期設定為 2005年3月29號,16:21:

If the date/time shown is xff0c; update xff08 using date MMDDhmmYYY for month xff08; M for month xff0c; D for day xff0c; h for xff0c; m for year xff0c; and Y for year xff09; for example xff0c; date set at 29 March 2005 xff0c; 16:21ffa;

原始碼?2: 設定日期/時間

# date 032916212005

找到 Stage3 檔案

如果您已經設定好網路,因為您需要下載屬於您系統架構的 stage3 檔案,請遵照 另種途徑:使用網路上的 Stage3,其他請閱讀 預設:使用 Installation CD 的 Stage3

If you have set up the network & #xff0c; because you need to download stage3 files & #xff0c belonging to your system architecture; follow , other read ;

5.b. 預設:使用 Installation CD 的 Stage3

解壓縮 Stage Tarball

CD 上的 stage 檔案放置在 /mnt/cdrom/stages 目錄中,要查看所有 stages 檔案列表,使用 ls

The stage file on CD is placed in the directory , to view the list of all stages files, use

原始碼?3: 列出所以 stage 檔案

# ls /mnt/cdrom/stages

如果系統回應的是個錯誤訊息,您也許需要先將 CD-ROM 掛載起來:

If the system responds to an error message xff0c; you may need to load the CD-ROM first xff1a;

原始碼?4: 掛載 CD-ROM

# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages

現在進到您的 Gentoo 掛載點(通常是 /mnt/gentoo):

Now enter your Gentoo mount point xff08; usually ) xff1a;

原始碼?5: 改變所在目錄至 /mnt/gentoo

# cd /mnt/gentoo

我們現在要將您所選定的 stage tarball 解壓縮。我們將使用 GNU tar 工具,請確認您使用相同的選項(-xvjpf)!x 代表著 Extract(解開),v 代表著 Verbose 用來檢視在解壓縮過程中發生的事件(好啦,是的,這是選擇性的),j 代表著Decompress with bzip2(以 bzip2 解開), p 代表著 Preserve permissions(預留的權限)和 f代表著以我們的方式解開而不是標準的輸入。在下面的例子中,我們解壓縮的 stage tarball 是 stage3-<subarch>-2005.0.tar.bz2,請記得將 tarball 檔名用您所選的 stage 檔代換。

We will now decompress your chosen stage tarball. We will use GNU/#ff01; > ; > > spanspanspanspanspan>; Extract[spans>; xffps>; s[s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s]s][s][s][s][s][s][s][s][s][s][s][s]s][s][s][s][s][s][s][s][s]s][s][s][s][s][s][s][s][s]

原始碼?6: 解壓縮 stage tarball

# tar -xvjpf /mnt/cdrom/stages/stage3-<subarch>-2005.0.tar.bz2

現在 stage 檔已經安裝完成,請繼續下一步 安裝 Portage

The stage file has now been installed & #xff0c; please continue the next step Portage.

5.c. 另種途徑:使用網路上的 Stage

下載 Stage 壓縮檔

先更換到您之前所掛載的目錄下(大部份是/mnt/gentoo):

Change first to xff08 in your previous directory; most of them are ) xff1a;

原始碼?7: 更換到 Gentoo 的掛載點

# cd /mnt/gentoo

依照您的安裝方式,您有幾個可以選擇的工具下載 Stage 壓縮檔。如果您有 links2 ,您就可以馬上連接到 Gentoo 對映站 然後選擇最靠近您的位置。

If you have links2 & #xff0c; you can immediately connect to Gentoo

如果沒有 links2 的話,應該會有 lynx 可以用。假如要透過 proxy,設定 http_proxyftp_proxy 變數:

xff0c if not for links2; lynx. and variablesxff1a;

原始碼?8: 設定 lynx proxy 資訊

# export http_proxy="http://proxy.server.com:port"
# export ftp_proxy="http://proxy.server.com:port"

我們假設你有 links2 可以使用。

Let's assume you have links2 available.

選擇releases/的目錄,接著是您所使用的架構(如 x86/)最後則是 Gentoo 的版本(2005.0)最後您就可以看到適合您的架構所使用的 Stage 壓縮檔位於 stages/的列表(他們也許會被放在不同子架構中的子目錄中)。選擇一個然後按下 D 開始下載。當下載完成時,按下Q 離開瀏覽器。

Select &#ff09; lastly, version & #xff08; and #xff09; lastly, you can see stage compression files suitable for your structure at lists/ (they may be placed in subdirectories in different substructures) and then press D to download.

原始碼?9: 使用 links2遊覽對映站

# links2 http://www.gentoo.org/main/en/mirrors.xml
(如果你想要使用 proxy:)
# links2 -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml

如果您想要檢查下載的壓縮檔是否正確,您可以使用 md5sum 然後以 MD5 checksum 輸出進行比較。例如說,檢查 stage 壓縮檔是否正確:

If you want to check the download of xff0c; you can compare the download with MD5 checksum using md5sum. For example, xff0c; check the stage archive for xff1a;

原始碼?10: 檢查 stage 壓縮檔是否下載正確

# md5sum -c stage1-x86-2005.0.tar.bz2.md5
stage1-x86-2005.0.tar.bz2: OK

解開 Stage 壓縮檔

現在解開您剛剛下載到系統上的壓縮檔。我們使用最簡單的 GNU 的 tar 方式進行:

Now unbutton the archive that you have just downloaded to the system. We do #xff1a using the simplest GNU ;

原始碼?11: 解開 Stage 壓縮檔

# tar -xvjpf stage3-*.tar.bz2

確定您有放入一樣的參數(-xvjpf)。x 代表著 Extract(解開),v 代表著 Verbose 用來檢視在解壓縮過程中發生的事件(好啦,是的,這是選擇性的),j 代表著 Decompress with bzip2(以 bzip2 解開),p 代表著 Preserve permissions(預留的權限)和 f代表著以我們的方式解開而不是標準的輸入。

We're sure you have the same parameter xff08; and xff09; for

現在 stage 已經安裝完成了,請從 安裝 Porage 繼續。

Stage has now been installed xff0c; please install Portage from Porage.

5.d. 安裝 Portage

解壓縮 Portage 快照

現在你需要安裝 Portage 快照,裡面是告訴 Portage 那些軟體可以安裝,那些 profiles 可以使用等等的檔案集合。

Now you need to install Portage snapshots & #xff0c; it's about telling Portage that those softwares can install & #xff0c; those files can use and so on.

解壓縮 Installation CD 上的快照

要安裝快照,請先看看 /mnt/cdrom/snapshots 目錄中有哪些快照可供選擇:

To install snapshots & #xff0c; see first what snapshots in the directory are available for xff1a;

原始碼?12: 檢查 /mnt/cdrom/snapshots 內容

# ls /mnt/cdrom/snapshots

現在用下列指令解壓縮快照。同樣的,請確認您使用 tar 時有搭配正確的選項,另外 -C 是大寫的 C,不是 c。在下面的範例中,我們使用 portage-<date>.tar.bz2 作為快照檔名,請記得要將它用您 Installation CD 上的快照名稱作代換。

The following instructions are now used to extract the snapshots. The same xff0c; please confirm that you have the right combination of tar. In the example below, xff0c; we use -C, which is a capitalized and #xff0c; not .

原始碼?13: 解壓縮 Portage 快照

# tar -xvjf /mnt/cdrom/snapshots/portage-20041022.tar.bz2 -C /mnt/gentoo/usr

複製原始碼檔案

您也需要從 Universal Installation CD 複製所有的原始碼。

You also need to copy all original codes from the Universal Installation CD.

原始碼?14: 複製原始碼

# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/

5.e. 設定編譯參數

介紹

要自訂 Gentoo,您可以設定很多變數來影響 Portage 的動作。這些變數可以設為環境變數(使用 export)但是非永久性。如果要保留您的設定,可以存在 Portage 提供的 /etc/make.conf,一個 Portage 的設定檔。這也將是我們將要編輯的檔案。

To customize Gentoo, you can set a number of variables to influence the actions of Portage. These variables can be set as ( use ) but are not permanent. If you want to keep your settings & #xff0c; there can be /etc/make.conf, a Portage configuration file that we will edit. This will also be the file that we will edit.

注意: 您將會看到 /mnt/gentoo/etc/make.conf.example裡有一大串註解的可用變數。要完整地安裝 Gentoo 您至少需要按照以下設定變數。

使用您最喜歡的編輯器(這份指南我們使用 nano)然後我們才可以繼續我們稍後會討論到的自訂變數。

Use your favorite editor & #xff08; this guide uses ) then we can continue the custom variable that we will discuss later.

原始碼?15: 打開 /etc/make.conf

# nano -w /mnt/gentoo/etc/make.conf

您或許已經發現了,make.conf.example 檔案是基於常用的架構:註解的行數將以 "#" 放在每行的最前面,其他已定義的變數將使用類似 變數="內容"make.conf 也使用相同的語法。許多變數將在下面繼續講解。

You may have found that xff0c; make.conf.example files are based on the usual architecture xff1a; comments will be in & #34; ##34; ff0c; in the front of each line xff0c; other defined variables will be used as & #xff0c; . Many variables will be further explained below.

警告: 如果您計畫在 stage3 安裝中使用 GRP,請不要對 USE 變數作任何變動,您可以在安裝完所有您想要的套件之後再變更 USE 變數,已知有怪事會發生侵害您的系統,如果您忽視這個警告的話!

CHOST

警告: 雖然這會對一些非 Stage1 的使用者有興趣,但是非 stage1 的使用者 不應該 更改 make.conf 內的 CHOST 的設定。這樣會造成系統不穩。再一次提醒:這只適用於 stage1 的使用者。

無網路安裝程序只支援 stage3 安裝,不要碰觸 CHOST 變數!

No network installer only supports stage3 installation & #xff0c; do not touch CHOST variable #xff01;

CFLAGS 和 CXXFLAGS

CFLAGSCXXFLAGS 變數將定義最佳效能化 gcc C 和 C++ 編譯器的參數。雖然我們以通用的方式定義,您將需要分開定義適合您提高效能的設定。原因是每個程式使用的都不同。

CFLAGS and variables define optimal performance gccC and C#43; #43; compilers parameters. Although we define xff0c in a generic way, you will need to define separately to fit your improved efficiency settings. Because each program is used differently.

make.conf 您應該要定義一個您認為會最佳化的 通用 參數。不要將測驗性質的參數也放到這裡;太多自訂會讓程式變得怪異(當掉,或是更遭,無法作用)。

At , you should define a generic

我們將不會解釋這些可用的參數選擇。如果您想知道更多,查看 GNU 線上指南 或是 gcc infopage (info gcc -- 只在一個完成的 Linux 系統上可作用)。 make.conf.example 這個檔也包含著許多範例及資料;不要忘了閱讀他們。

We will not explain these available arguments. If you want to know more about xff0c; see GNU line guide or

第一個設定為 -march= 參數,這代表著電腦架構的目標。可用的參數將會在 make.conf.example 檔案內說明(為註解的方式)。舉例來說,給 x86 Athlon XP 的架構:

The first setup is parameter & #xff0c; this represents the object of the computer architecture. Available parameters will be xff08; mode of comment #xff09; for example xff0c; 86Athlon XP structure xff1a;

原始碼?16: GCC march 設定

# 想要使用原生 64 位元環境的 AMD64 的使用者應該使用 -march=k8
-march=athlon-xp

第二個則是 O(是大寫的 O,不是零) 參數,代表著 gcc 的性能參數。可用的參數為 s (增加檔案大小性能),0 (零 - 沒有提昇性能), 12 或是 3 則關於速度的性能(一個特定的性能加上另外一個或是兩個)。舉例來說,一個 2 的性能參數:

The second is ( is upper case O, is not zeroff09; xff0c; represents performance parameters. Available parameters are O & #xff08; increases file size xff09; xff0c; & xff08; zero - no booster #xff09; ;

原始碼?17: GCC O 設定

-O2

另一個受歡迎的參數為 -pipe (使用 pipes 進行編譯中的通訊而不是暫存檔)。

Another popular parameter is & #xff08; uses pipes for communications in compilation instead of temporary file #xff09;

值得注意的是,使用 -fomit-frame-pointer (在不需要 frame pointer 的時候不使用)時可能會讓程式除錯時會有嚴重的負面效果。

Noteworthy is xff0c; using -fomit-frame-pointer & #xff08; not using xff09 when framing point is not needed; it may cause a program to have serious negative effects when debugging.

當您定義 CFLAGSCXXFLAGS後,您應該按照以下範例將他們結合起來:

When you define CFLAS and xff0c after CXXFLAS; you should combine them as #xff1a;

原始碼?18: 定義 CFLAGS 和 CXXFLAGS 變數

CFLAGS="-march=athlon-xp -pipe -O2"   AMD64 的使用者應該使用 march=k8
CXXFLAGS="${CFLAGS}"                  # 兩個變數使用一樣的設定

MAKEOPTS

MAKEOPTS 將定義的是您需要在安裝一個套件時需要幾個平行編譯。一個好的選擇是為您系統上的 CPU 數目加一,但這準則並不總是完美的。

defines how many parallel compilations you need to install a package. A good option is to add a xff0c to the number of CPUs on your system; but this is not always perfect.

原始碼?19: 普通的 1-CPU 系統的 MAKEOPTS

MAKEOPTS="-j2"

預備,開始!

依照您個人的選擇編輯 /mnt/gentoo/etc/make.conf 然後儲存 (nano 使用者可以按下 Ctrl-X)。您現在可以從 轉換根目錄進 Gentoo 基礎系統 繼續。

Edit /mnt/gentoo/etc/make.conf and store (nano) by pressing ). You can now move from .

6. 安裝 Gentoo 基礎系統

6.a. 變換根目錄

掛載 proc 檔案系統

掛載 /proc 檔案系統到 /mnt/gentoo/proc,讓安裝過程即便是在轉換根目錄的環境下,也可以使用核心所提供的資訊。

Mount filesystems to , allow installation to be performed even in the context of the conversion of the root directory xff0c; use the information provided by the core.

原始碼?1: 掛載 /proc

# mount -t proc none /mnt/gentoo/proc

選擇性:複製 DNS 資訊

如果您設定好您的網路,並打算稍後從網路上抓取合適的 stage 檔案,您需要複製儲存在 /etc/resolv.conf 中的 DNS 資訊到 /mnt/gentoo/etc/resolv.conf,這個檔案包含您系統用來轉譯網名到 IP 位址的名稱伺服器。

If you set your network & #xff0c; if you want to retrieve suitable stage files & #xff0c from the network later; you need to copy the DNS information stored in to , this file contains the name server that your system uses to translate the URL to an IP address.

原始碼?2: 複製 DNS 設定

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

進入新的系統環境

現在所有的分割區都已經初步設定好了而且基本的系統也安裝完畢,現在是用 變換根目錄進入新的系統環境的時候了。這代表我們從目前的安裝環境進入您安裝的系統(就是已經安裝的分割區)。

Now all the partitions are pre-positioned and the basic systems are installed xff0c; it's time to change the root folder . This means that we enter the system you installed from the current installation environment (that is, the partition that has already been installed).

變換根目錄動作在三步驟內完成。首先我們會用 chroot 讓根目錄從 / (目前安裝的媒體)變換到 /mnt/gentoo (或您安裝的分割區)。然後用 env-update 建立新的環境,這將會建立基本的系統變數。最後,我們用 source 把這些變數載入到記憶體。

The root directory action is completed in three steps. First, we will use chroot to change the root directory from (the currently installed media) to /mnt/gentooo (or the partition you installed). Then we will use to create a new environment #xff0c; this will create a basic system variable. Finally xff0c; we will post these variables to memory with .

原始碼?3: 進入新的環境

# chroot /mnt/gentoo /bin/bash
# env-update
 * Caching service dependencies...
# source /etc/profile

恭喜!您現在在新的 Gentoo Linux 環境當中了。不過離安裝完畢還有一段時間,這就是為什麼安裝指南還有下面這些部份 :-)

Congratulations #xff01; you are now in the new Gentoo Linux environment. But there's still time before the installation #xff0c; that's why the installation guide has the following parts:-)

6.b. 設定 USE 變數

什麼是 USE 變數?

USE 是 Gentoo 提供給使用者最有威力的變數之一。許多程式可以在編譯時包含或不包含自由選擇的支援。例如,一些程式可以在編譯時包含 gtk 支援,或者是支援 qt。其它程式可以包含或不包含 SSL 支援,也有一些甚至可以使用 framebuffer (svgalib) 而不是 X11 (X-server)。

is one of the most powerful variables available to users by Gentoo. Many programs can contain or do not contain support for free selection when they are compiled. For example, , some programs can include gtk support & #xff0c; or qt when they are compiled. Other programs can contain or do not contain SSL support & #xff0c; or some can even use the flamebuffer (svgalib) instead of X11 (X-server).

大部分的安裝套件在編譯時都盡可能地加入最多的支援,增加檔案大小以及程式啟動的時間,更別提複雜的相依性。在 Gentoo 下您可以定義哪些支援編譯時要加入。這就是 USE 的作用。

Most of the installed packages are compiled with the most support xff0c; increased file size and time for program start xff0c; and much less complex dependencies. Under Gento, you can define which support compilations you want to add. This is the role of .

USE 變數中,您可以加入要在編譯時加入支援的關鍵字。例如,ssl 會在支援 ssl 的程式編譯時加入 ssl 支援。-X 則會移除 X-server 支援(注意前面的減號)。gnome gtk -kde -qt 則會支援 gnome(以及 gtk),而不包含 kde(以及 qt) 的支援,這可以讓您的系統對 GNOME 完整的調節。

& #xff0c; you can add the key to support when you compile. For example & #xff0c; ssl will add ssl support when supporting ssl programming. will remove the X-server support (note the decrease in the front). will support gnome (and gtk) #xff0c; does not include kde (and qt) support #xff0c; this will allow your system to make a complete adjustment to GNOME.

修改 USE 變數

警告: 如果您打算要使用預編套件(GRP 包),請先不要對 USE 變數作任何的修改,您可以在安裝完所有您想要的套件之後,再變更 USE 變數。已知會有怪事侵襲您的系統,如果您忽視這個警告的話!

預設的 USE 設定放在 /etc/make.profile/make.defaults,而您在 /etc/make.conf 中的設定會和預設的設定一起考慮。如果您在 USE 設定中新增一些東西,他會加入預設的設定中。如果您從 USE 中移除一些東西(在前面加上減號),他會從預設的設定移除。永遠不要改變任何在 /etc/make.profile 目錄中的東西,他會在您更新 Portage 時被覆蓋!

The default setup USE will be considered together with the default setup. If you add something to the preset setup /etc/make (with a reduction in the front) #xffoc; if you remove something from the default setup ; if you remove anything from the predefined set ; if you remove anything (with a reduction in the front) #xff0c; if you remove something from the default set

完整的 USE 說明可以在 Gentoo 手冊中 USE 參數 找到。完整的 USE 參數列表可以在系統中的 /usr/portage/profiles/use.desc 找到。

The complete can be found in the Gentoo Handbook . The full USE parameter list can be found in the system .

原始碼?4: 檢視可用的 USE 參數

# less /usr/portage/profiles/use.desc
(你可以使用方向鍵來捲動,按下 'q' 離開)

下面是一個 USE 的設定,在以 KDE 為基礎的系統中支援 DVD, ALSA 以及燒錄機。

The following is a setup for USE, supports DVDs, ALSAs and burners in KDE-based systems.

原始碼?5: 開啟 /etc/make.conf

# nano -w /etc/make.conf

原始碼?6: USE 設定

USE="-gtk -gnome qt kde dvd alsa cdr"

7. 設定核心

7.a. 時區

為了讓您的系統知道它的位置在那裡,您將需要設定您的系統時區。到 /usr/share/zoneinfo 尋找您的時區,然後使用 ln 建立一個連接到 /etc/localtime 的符號連結。

To let your system know where it is xff0c; you will need to configure your system time zone. Find your time zone xff0c; then use .

原始碼?1: 設定時區資訊

# ls /usr/share/zoneinfo
(假設您要使用 GMT)
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime

7.b. 安裝核心原始碼

選擇一個核心

Linux 的核心是所有版本的最中心,也是最重要的。他位於使用者程式和系統硬體之間。 Gentoo 提供使用者很多可用的核心原始碼。您可以到 Gentoo 核心 指南 查看我們所提供的核心。

The core of Linux is the most central of all versions & #xff0c; and most important. He is between user programs and system hardware. Gentoo provides many of the core source code available to users. You can view the core we provide at Gentoo core guide.

使用 x86 系統的使用者,我們主要支援的核心名為 gentoo-sources,這個核心是以正式 Linux 原始碼為基礎,但是套用了安全、穩定性、相容性和臭蟲修正。除此之外, vanilla-sources 套件提供單純沒有加上補釘的 Linux 原始碼。

User & #xff0c using the x86 system; our main support core is gentoo-sources, this core is based on the official Linux source code & #xff0c; but it is fitted with safe, stable, compatible and bug correction. Other than xff0c; packages provide a clean Linux source code.

兩個核心原始碼都是以正式的 2.6 核心原始碼為基礎,如果您想要安裝 2.4 為基礎的核心,您將需要有個運作正常的網路連線來安裝 Gentoo,因為我們的 Installation CD 上沒有提供這些原始碼。

Both core source codes are based on the official 2.6 core source code & #xff0c; if you want to install the 2.4-based core & #xff0c; you will need a normal network connection to install Gentoo, because these original codes are not available on our Installation CD.

選擇適合您的核心原始檔然後使用 emerge 安裝。

Select the core original file that suits you and installs it using emerge.

原始碼?2: 安裝核心原始碼

# emerge gentoo-sources

當您查看 /usr/src 您將會看到一個 linux 的連接連到您所選的核心,我們會假設要安裝的核心版本是gentoo-sources-2.6.11-r3

When you view /usr/src, you will see a connection from linux to the core #xff0c of your choice; we will assume that the core version to be installed is and #xff1a;

原始碼?3: 觀看核心原始碼目錄連接

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           12 Oct 13 11:04 /usr/src/linux ->
linux-2.6.11-gentoo-r3

如果這並沒有指向你所選擇的核心(注意 linux-2.6.11-gentoo-r3 只是一個範例),你要把他改成正確的核心:

If this does not point to the core of your choice (note that linux-2.6.11-gentoo-r3 is just an example) xff0c; you have to change him to the right xff1a;

原始碼?4: 更改核心連接目錄

# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.11-gentoo-r3 linux

現在我們該設定以及編譯您的核心了。您可以使用 genkernel 完成此項步驟,並且將會以和 Installation CD 一樣的通用的方式進行編譯。我們將先解釋如何手動編譯因為這是自訂您的環境的最佳方法。

Now it is time to configure and compile your core. You can use genkernel to do this step & #xff0c; and will be compiled in the same way as the Construction CD. We will first explain how to compose manually because this is the best way to customize your environment.

如果您想要手動編譯您的核心,請從 預設:手動設定 繼續。如果您想要使用 genkernel 請從 其他選擇:使用 genkernel 繼續。

If you want to manually compile your core xff0c; continue from . If you want to use

7.c. 預設:手動設定

介紹

手動設定核心常常被 Linux 使用者認為最難完成的步驟。雖然不假 -- 但是當您手動編譯幾次核心後,您應該不會覺得它有多難 ;)

Manual core settings are often seen by Linux users as the most difficult step to accomplish. It is true - but when you compose the core several times #xff0c; you do not see how difficult it is;)

但是,唯一 的重點就是:您必須要了解您的系統才可以開始手動編譯。系統上多數的資料可以安裝 pciutils (emerge pciutils),從裏面包含的 lspci 取得。你可以在 chroot 的環境下執行 lspci,不過可能會碰到一些 lspci 丟出的錯誤訊息(像是 pcilib: cannot open /sys/bus/pci/devices)。此外,你也可以在 未 chroot 執行,兩個結果都一樣。您也可以執行 lsmod 看看安裝光碟使用那些核心模組(這是一個不錯的暗示,教您該開啟那個選項)。

But xff0c; contains the only point of xffa; you must know your system before you can start manual compilation. Multiple data on the system can be installed at pciutils (emerge pciutils xff0c; from inside lspci. You can also use the same message (like pcilib:

現在到您的核心原始碼目錄然後執行 make menuconfig。這將會啟動一個 ncurses 的設定選單。

Now go to your core source directory and run make menuconfig. This will activate a ncurses menu.

原始碼?5: 開始 menuconfig

# cd /usr/src/linux
# make menuconfig

您將會看到一大串的設定部份。我們將列出一些您一定要啟用的選項(不然 Gentoo 無法完善地工作)。

You will see a large set of settings. We will list some of the options that you must enable & #xff08; otherwise Gentoo cannot work well & #xff09;

必須開啟的選項

請確定您的系統開機所必需的每個驅動程式(像是 SCSI controller,...)都有 編進 核心而不是編成模組,否則您的系統將無法完成開機程序。

Make sure that every driver & #xff08 necessary for your system to start is & & #xff09; like SCSI & & xff09; has

現在,選擇正確的處理器類別:

& #xff0c; Select the right processor class

原始碼?6: General Support and processor family

General setup  --->
    [*] Support for hot-pluggable devices
Processor type and features --->
    Subarchitecture Type (PC-compatible)  --->
 (依照您的處理器所更換)
 (Athlon/Duron/K7) Processor family

現在到 File Systems 然後選擇要支援的檔案系統。記得 不要 將它們編成模組(Module)。還有 /proc file systemVirtual memory不要 勾選 /dev file system

Now go to File Systems and select the file systems to be supported. Remember don't compose them into module. /procfile system and . don't choose .

原始碼?7: 選擇相關檔案系統

File systems --->
  Pseudo Filesystems --->
    <*> /proc file system support
    <*> /dev file system support (OBSOLETE)
    <*>   Automatically mount at boot
    <*> Virtual memory file system support (former shm fs)

(按照您系統所需要的檔案系統開啟以下選項)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

不要忘了啟動您磁碟的 DMA 功能:

Do not forget the DMA function that activates your disk & #xff1a;

原始碼?8: 啟動 DMA

 
Device Drivers --->
  ATA/IDE/MFM/RLL support ---> 
    [*] Generic PCI bus-master DMA support
    [*]   Use PCI DMA by default when available

如果您需要透過 PPPoE 連線到網路或是數據機撥接,您將需要以下的核心選項:

If you need to connect to the network via PPPOE or the modem & #xff0c; you will need the following core options & #xff1a;

原始碼?9: 選擇 PPPoE 相關驅動程式

Device Drivers --->
  Networking support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

雖然 PPP over Ethernet 選項只有在 rp-pppoe 設定為核心 PPPoE 時需要,但是這兩個壓縮的選項不會造成錯誤。

Although PP over Ethernet options need & #xff0c when rp-pppoe is set as a core PPPoE; however, these two compressed options do not cause errors.

如果您需要,不要忘了為您的網路卡加入核心的支援。

If you need xff0c; do not forget to add core support to your network card.

如果您有一個支援 HyperThreading(tm) 的 Intel CPU,或是有多個 CPU,您應該啟用 "Symmetric multi-processing support":

If you have an Intel CPU, supporting HyperThread(tm); or multiple CPU, you should activate & #34; Symmetrich multi-processing support#34; & #xff1a;

原始碼?10: 啟用 SMP 支援

Processor type and features  --->
  <*> Symmetric multi-processing support

如果你使用 USB 輸入裝置(像是鍵盤或滑鼠)不要忘記開啟他:

If you use a USB input device (like a keyboard or mouse) don't forget to open him & #xff1a;

原始碼?11: 啟動 USB 輸入裝置支援

Device Drivers --->
  USB Support --->
  <*>   USB Human Interface Device (full HID) support
  [*]   HID input layer support 

如果您是筆記型電腦的使用者,並且需要 PCMCIA 支援,記得把它編進核心。還有其下的選項,記得要啟動您系統上 PCMCIA card bridge 的支援(在同一個設定選單畫面中可找到)。

If you are a laptop user & #xff0c; if you need PCMCIA support & #xff0c; if you want to add it to the core. There is also the option & #xff0c; if you want to activate support #xff08 for PCMCIA card Bridge on your system; you can find xff09 on the same setup menu screen.

原始碼?12: 啟動 PCMCIA 支援

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
    (如果您需要支援較老舊的 PCMCIA 卡,勾選 16 bit。多數人會想要加入這個。)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
    (選取相關的 bridge)
    --- PC-card bridges
    <*> CardBus yenta-compatible bridge support (NEW)
    <*> Cirrus PD6729 compatible bridge support (NEW)
    <*> i82092 compatible bridge support (NEW)
    <*> i82365 compatible bridge support (NEW)
    <*> Databook TCIC host bridge support (NEW)

編譯和安裝

現在您的核心已經設定完成了,我們該來編譯然後安裝它。離開核心設定,然後執行 make dep && make bzImage modules modules_install

Now your core has been configured to xff0c; we should compile and install it. Leave the core setting xff0c; then run

原始碼?13: 編譯核心

# make && make modules_install

當核心完成編譯時,將核心映像檔複製到 /boot:從這邊我們將假設您安裝的是 gentoo-sources 的 2.6.11-r3。您可以隨意更改容易記住的檔案名稱,方便稍後的開機程式設定。

& #xff0c; Copy the core image to : from here we assume that you will install 2.6.11-r3 of gentoo-sources. You can change the easy-to-remember filename xff0c; facilitate later startup settings.

原始碼?14: 安裝核心

# cp arch/i386/boot/bzImage /boot/kernel-2.6.11-gentoo-r3

您也可以將您的核心設定檔備份到 /boot,以防萬一 :)

You can also back up your core configuration file at , in case:)

原始碼?15: 備份您的核心設定檔

# cp .config /boot/config-2.6.11-gentoo-r3

現在請從設定核心模組繼續。

Please continue with the core module from .

7.d. 其他選擇:使用 genkernel

如果您正在讀這個部份,那您應該是選擇使用我們的 genkernel 程序來為您設定核心。

If you are reading this section & #xff0c; then you should choose to use our genkernel program to set the core for you.

現在您的核心原始碼已經安裝了,我們該使用 genkernel 程序來自動幫您編譯核心。genkernel 是利用類似 Installation CD 的核心設定來進行工作的。這代表著當您使用 genkernel 編譯您的核心,您的系統大致上會在開機時偵測所有的硬體,就和我們的 Installation CD 一樣。因為 genkernel 不需要手動核心設定,所以適合不會編譯核心的使用者。

Now your core code has been installed xff0c; we should use the program genkernel to help you compile the core. is based on a core setup similar to the Internet CD. This means that when you use to compile your core xff0c; your system will generally detect all hard bodies #xff0c; it is similar to our Installation CD. Because genkernel does not need a manual core setup #xff0c; therefore it is not appropriate to compile the core user.

現在讓我們來看看如何使用 genkernel。首先,安裝 genkernel:

Now let's see how to use genkernel. & #xff0c; install genkernel:

原始碼?16: 安裝 genkernel

# emerge genkernel

接下來,把 Installation CD 上的核心設定複製到 genkernel 找尋預設核心設定的位置:

& #xff0c; copy core settings on Integration CD to genkernel for default core settings & #xff1a;

原始碼?17: 複製 Installation CD 核心設定

# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6

現在,編譯您的核心原始碼。如果您是透過 grp 安裝 genkerenl,直接執行 genkernel all。請注意,當 genkernel 正在編譯所有硬體支援時,等待的時間會有點久!接下來,把 Installation CD 上的核心設定複製到 genkernel 找尋預設核心設定的位置:

Now xff0c; compiles your core source code. If you install genkerenl, through grp, directly execute genkernel all. Note #xff0c; when

如果您的開機分割區沒有使用 ext2 或是 ext3 為檔案系統,您將需要使用 genkernel --menuconfig all 手動設定,然後在核心內加入您所使用的檔案系統支援( 不能 編成模組)。EVMS2 或 LVM2 的使用者可能會想要再加上 --evms2--lvm2 參數。

If your open partition does not use ext2 or ext3 as file system xff0c; you will need to use genkernel --menuconfig all manual settings xff0c; then add to the core the file system support you use xff08; not xff09; vMS2 or LVM2 users may want to add or .

原始碼?18: 執行 genkernel

# genkernel --udev all

genkernel 完成的時候,一個核心映像檔,一套模組和一個 initial root disk (initrd)將會被建立。我們將在稍後設定開機程式時使用核心映像檔和 initrd。寫下核心和 initrd 的檔名方便您稍後設定開機程式。initrd 將會在開起到"真正的"系統之前馬上偵測硬體支援(就和 Installation CD 一樣)。

& #xff0c; a core image & #xff0c; a module and a

原始碼?19: 查看已建立的核心映像檔名和 initrd

# ls /boot/kernel* /boot/initrd*

如果您想要您的系統更像 Installation CD,在 Gentoo 安裝程序完成之後,您需要 emerge coldplug。initrd 會自動偵測您系統開機所需要的硬體,coldplug 擇會自動偵測所有其他事項。coldplug 在套件 CD 上有提供。

If you want your system to be more like Installation CD, , after the Gento installation is complete; you need emerge coldplug. Inittrd automatically detects hardware xff0c; coldplug for your system startup. coldplug is available in the package CD.

原始碼?20: 安裝和開啟 coldplug

(在安裝完成之後,GRP 安裝指令中)
# emerge -k coldplug
# rc-update add coldplug boot

7.e. 核心模組

設定模組

您將需要將想要開機時自動載入的模組放到 /etc/modules.autoload.d/kernel-2.4 (或是 kernel-2.6)。您也可以加上模組的選項。

You will need to load the modules automatically when you want to start them in & #xff08; or kernel-2.6). You can also add an option for the modules.

要查看所有可用的模組,執行 find 指令。不要忘了將 "<kernel version>"更改為您剛剛編譯的版本:

To view all available modules & #xff0c; to execute find commands. Do not forget to change & #34;< kernel version> & #34; to change the version that you have just compiled & #xff1a;

原始碼?21: 查看所有可用的版本

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'

舉例來說,要自動載入 3c59x.o 模組,編輯 kernel-2.4 或是 kernel-2.6

xff0c; autoload 3c59x.o/span> module xff0c; edit kernel-2.4 or kernel-2.6

原始碼?22: 編輯 /etc/modules.autoload.d/kernel-2.4

(2.4核心的範例)
# nano -w /etc/modules.autoload.d/kernel-2.4

原始碼?23: /etc/modules.autoload.d/kernel-2.4 或是 kernel-2.6

3c59x

現在請從 設定您的系統 繼續安裝。

Please continue to install your system from

8. 設定您的系統

8.a. 檔案系統資訊

什麼是 fstab?

在 Linux 中,所有在系統中被使用的分割區要被列在 /etc/fstab 之中。在這個檔案之中包含了這些分割區的掛載點(他們在檔案系統中哪裡被存取),他們如何掛載( 一些特別的參數),以及何時掛載(要不要自動掛載,一般使用者可不可以掛載等)。

In Linux & #xff0c; all partitions used in the system are listed in

建立 /etc/fstab

/etc/fstab 使用特別的語法。每一列包含六個欄位,以空格(一個以上)、tab或兩者同時用來分隔。每一個欄位有他自己的定義:

uses a special grammar. Each column contains six columns xff0c; it is separated by spaces (more than one), tab or both. Each column has its own definition xff1a;

  • 第一個欄位設定分割區的位置(裝置的路徑)
  • 第二個欄位設定分割區要在哪個掛載點被掛載
  • 第三個欄位設定分割區的檔案系統
  • 第四個欄位設定 mount 要掛載時所使用的掛載參數。 因為不同的檔案系統有不同的參數,您要去查詢 manpage (man mount) 來取得完 整的參數列表。這些參數之間以逗號分隔。
  • 第五個欄位被 dump 用來決定這個分割區需不需要被傾印。一般而言您可以設成 0(零)
  • 第六個欄位讓 fsck 決定當系統不正常的關機時,檔案系統檢查的順序。 根目錄要被設成 1 而其他則要設成 2,如果檔案系統不需要被檢查的 話,則設成 0

Gentoo 提供的預設 /etc/fstab 檔案 不是一個有效的 fstab 檔 ,接下來啟動 nano (或您慣用的編輯器)來建立/etc/fstab

The default provided by Gentoo /etc/fstab file is not a valid fstab file & #xff0c; next starting (or your used editor) to create #xff1a;

原始碼?1: 開啟 /etc/fstab

# nano -w /etc/fstab

接著來看看我們如何設定 /boot 分割區。這只是一個範例,所以如果您的系統不需要 /boot 分割區(如:PPC),不要直接複製它。

Let's see how we set up the partition. This is just an example xff0c; so if your system does not need /boot partitionxff08; e.g. xff1a;PC)xff0c; do not reproduce it directly.

在我們的 x86 分割範例中 /boot 是位於 /dev/hda1 分割區中,而且使用 ext2 檔案系統。他不應該在開機時自動掛載 (noauto),但是需要被檢查,所以我們應該記下來:

In our x86 partition example /boot is located in /dev/hda1 , and using filesystems. He should not automatically load (noauto) #xff0c; but needs to be checked xff0c; so we should write down ff1a;

原始碼?2: /etc/fstab 中 /boot 設定範例

/dev/hda1   /boot     ext2    defaults        1 2

如果您不需要自動掛載 /boot 分割區,來增加您的系統安全性,您將需要將 defaults 更換成 noauto。這代表著您將需要在使用時手動掛載。

If you do not need to automatically load partitionxff0c; to increase your system security xff0c; you will need to change defaults to . This means that you will need to load manually when you are using.

為了增進效能,大部分使用者都會在要掛載的分割區掛載參數中設定 noatime,因為這會讓系統不更新上次檔案的存取時間(一般來說您並不需要這個功能),因此可以加快速度:

xff0c; most users will set , in the partition parameters to be loaded; this will allow the system not to update the access time of the last file (in general you do not need this function) xff0c; thus, speed xff1a;

原始碼?3: etc/fstab 中改進過的 /boot 設定範例

/dev/hda1   /boot     ext2    default,noatime    1 2

接下來,我們繼續完成下面這幾行,包括 /boot/ 還有置換區:

Next #xff0c; we continue to complete the following lines #xff0c; including /boot and replacement areaxff1a;

原始碼?4: /etc/fstab 中三行設定

/dev/hda1   /boot     ext2    default,noatime    1 2
/dev/hda2   none      swap    sw                0 0
/dev/hda3   /         ext3    noatime           0 1

最後,您要加入 /proctmpfs (必要),以及CD-ROM。如果您還有其他的裝置,也加到檔案中:

xff0c; you want to add /proc, (as necessary)xff0c; and CD-ROM. If you have other devices xff0c; you are also added to the file xff1a;

原始碼?5: 完整的 /etc/fstab

/dev/hda1   /boot     ext2    defaults,noatime     1 2
/dev/hda2   none      swap    sw                0 0
/dev/hda3   /         ext3    noatime           0 1

none        /proc     proc    defaults          0 0
none        /dev/shm  tmpfs   nodev,nosuid,noexec  0 0

/dev/cdroms/cdrom0    /mnt/cdrom    auto      noauto,user    0 0

檔案系統設定 automount 猜測使用哪個檔案系統(建議在可卸除的裝置使用,因為他們可能有多種檔案系統),而 user 參數讓一般使用者也能掛載 CD。

The file system configuration auto allows mount to guess which file system to use (it is recommended to use xff0c; because they may have several file systems) xff0c; and the parameter allows ordinary users to upload CDs.

如果您使用 SPARC 的話,您也要將下面這一行加入 /etc/fstab 中:

If you use SPARC, add the following line to xff1a;

原始碼?6: 在 /etc/fstab 加入 openprom 檔案系統

none        /proc/openprom  openpromfs    defaults      0 0

重新檢查一次 /etc/fstab,儲存離開後進行下面的步驟。

Recheck /etc/fstab, after saving leaves, proceed with the next step.

8.b. 網路資訊

主機名稱,領域名稱等

接下來的步驟其中之一就是給您的電腦一個名稱。這步驟相當簡單,但是許多人很難找到一個合適的名稱,記得您設定的名字在之後還是可以改變的,這可以讓您快一點完成。一般而言,您可以設定電腦名稱為 tux 而領域名稱為 homenetwork

One of the next steps is to give you a name for your computer. This step is quite simple xff0c; but it is difficult for many to find a suitable name xff0c; remember that the name you set may change later xff0c; this will enable you to do it quickly. xff0c; generally xff0c; you can set the name of the computer as and the domain name as .

我們會使用這些設定來當做範例。首先設定主機名稱:

We will use these settings as examples. Set the hostname & #xff1a first;

原始碼?7: 設定主機名稱

# echo tux > /etc/hostname

其次設定領域名稱:

Second, set the domain name & #xff1a;

原始碼?8: 設定領域名稱

# echo homenetwork > /etc/dnsdomainname

如果您有 NIS 領域名稱的話(您不知道這是什麼的話,那您就不用設定它),您也需要去設定它:

If you have a NIS domain name (if you do not know what this is xff0c; then you do not have to set it) xff0c; you also need to set it xff1a;

原始碼?9: 設定 NIS 領域名稱

# echo nis.homenetwork > /etc/nisdomainname

現在加入 domainname script 到預設的 runlevel 中:

Add domainnamescript to default runlevel & #xff1a;

原始碼?10: 將 domainname 加到預設 runlevel

# rc-update add domainname default

設定網路

在您覺得 "嗯,我現在已經弄好了" 之前,您要記得在您剛開始安裝 Gentoo 時設定的網路只是在安裝過程中使用。現在您要為您的 Gentoo 系統設定網路。

When you feel & #34; & um #xff0c; I have & #34; before & #xff0c; remember that the network set up when you first installed Gentoo was only used in the installation process. Now you want to set up the network for your Gentoo system.

所有的網路設定都集合在 /etc/conf.d/net。如果您不知道如何設定的話,您會覺得這些語法相當不熟悉或是不了解,但不用擔心,我們會解釋每件您該需要的訊息 :)

All network settings are assembled at /etc/conf.d/net. If you do not know how to set them, xff0c; you will find these syntaxes to be quite unfamiliar or unknown xff0c; but don't worry about xff0c; we will explain every message you need:)

首先用您慣用的編輯器開啟 /etc/conf.d/net (這個範例中使用 nano):

Start with your used editor (this example uses ) #xff1a;

原始碼?11: 開啟 /etc/conf.d/net 來編輯

# nano -w /etc/conf.d/net

您會看到的第一個變數是 iface_eth0。他的語法如下:

The first variable you will see is iface_eth0. His syntax is xff1a;

原始碼?12: iface_eth0 語法

iface_eth0="<您的 IP> broadcast <您的廣播位址> netmask 
<網路遮罩>"

如果您使用 DHCP (自動取得 IP),您只要設定 iface_eth0dhcp。如果您使用 rp-pppoe (例如 ADSL),則設定為 up。如果您要手動設定但是對上面的一些專有名詞不了解的話,請閱讀 了解網路專有名詞這一部分。

If you use DHCP (automatic acquisition of IP) & #xff0c; if you want to customize iface_eth0 for dhcp. If you use rp-pppoe (e. g. ADSL) & #xff0c; if you want to customize

接這我們給您三個例子;第一個使用 DHCP,第二個設定靜態 IP (192.168.0.2) 以及網路遮罩 255.255.255.0,廣播位址 192.168.0.255 還有閘道 192.168.1.1,第三個則是適合 rp-pppoe 的設定:

Take this and give you three examples & #xff1b; the first using DHCP, the second setting silence IP (192.168.0.2) and the net mask 255.255.255.0 & #xff0c; the radio address 192.168.0.255 and the ramp 192.168.1.1 #xff0c; the third is the appropriate rp-pppoe settings xff1a;

原始碼?13: Examples for /etc/conf.d/net

(適用 DHCP)
iface_eth0="dhcp"
#一些網路管理員會要求你使用
#DHCP 伺服器指定的主機名稱和領域名稱。
#在這種情況下,加入底下的東西讓 dhcpcd 使用他們。
#這會取代掉你遠本設定的主機名稱和領域名稱。
dhcpcd_eth0="-HD"
#如果你使用 NTP 來同步你的電腦時間,使用
#-N 參數避免 dhcpcd 覆蓋你的 /etc/ntp.conf
dhcpcd_eth0="-N"

(適用靜態 IP)
iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"

(適用 rp-pppoe) 
iface_eth0="up" 

如果您有數個網路介面,新增額外的 iface_eth 變數,例如 iface_eth1iface_eth2 等。而 gateway 變數在您只有一個閘道時並不用增加。

If you have several network interfaces & #xff0c; add an additional iface_eth variable xff0c; e.g. iface_eth1&#fff0c; iface_eth2. And gateway variable does not increase when you have only one track.

現在儲存設定然後離開,繼續下面的步驟。

Save settings now and leave #xff0c; continue the next step.

開機時自動啟動網路

讓您的網路介面開機時自動啟動,您要把底下這些加入預設的 runlevel 中。如果您使用 PCMCIA 介面則跳過這一步驟,PCMCIA 是由 PCMCIA 啟動 script 來啟動。

Enables your network interface to start xff0c; you want to add these below to the default runlevel. If you use the PCMCIA interface, you skip this step xff0c; PCMCIA is started by PCMCIA.

原始碼?14: 加入 net.eth0 到預設的 runlevel

# rc-update add net.eth0 default

如果您有數個網路介面,您要建立對應的 net.eth1net.eth2 等。您可以使用 ln 來完成:

If you have several web interfaces & #xff0c; if you have etc., you can use to complete xff1a;

原始碼?15: 建立額外的 initscripts

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

寫入網路資訊

您需要告訴 Linux 關於您的網路的資訊。這在 /etc/hosts 中定義幫助您將名稱伺服器上查不到的主機名稱反解為 IP。例如您的網路中有三台電腦,分別叫做 jenny (192.168.0.5),benny (192.168.0.6) 和 tux (192.168.0.7 - 這台電腦),您要開啟 /etc/hosts 然後填入這些設定:

You need to tell Linux about your network. This is defined in to help you reverse the default hostnames on your name server to IPs. For example, there are three computers on your network xff0c; this is called (19192.168.0.7 - this computerxff0c); you want to open these settings and then fill them in #xff1a;

原始碼?16: 開啟 /etc/hosts

# nano -w /etc/hosts

原始碼?17: 填入網路資訊

127.0.0.1     localhost
192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny
192.168.0.7   tux.homenetwork tux

如果您的電腦是唯一的一部,或是名稱伺服器有全部的反解,底下這一行已經足夠了,例如說,你想要你的電腦叫做 tux

If your computer is the only one xff0c; or if the name server has all xff0c; the bottom line is enough xff0c; e.g. xff0c; you want your computer to be called

原始碼?18: 適合單一電腦或是有完整反解的電腦的 /etc/hosts

127.0.0.1     localhost tux

儲存設定然後離開,繼續下面的步驟。

Save the settings and then leave & #xff0c; continue the next step.

如果您沒有 PCMCIA,您可以繼續進行 系統資訊。 PCMCIA 使用者繼續下面的主題。

If you do not have PCMCIA, you can continue with system information . PCMCIA users continue with the following theme.

非必要:讓 PCMCIA 工作

注意: pcmcia-cs 只可以在 x86, amd64 和 ppc 平台上使用。

PCMCIA 使用者首先要安裝 pcmcia-cs 套件,包含打算使用 2.6 核心的使用者(雖然他們將不會使用套件內的驅動程式)。

PCMCIA users first have to install pccmcia-cs package & #xff0c; contains users who intend to use the 2.6 core (although they will not use the driver in the package).

原始碼?19: 安裝 pcmcia-cs

# emerge pcmcia-cs

pcmcia-cs 安奘好以後,新增 pcmcia預設 runlevel:

When add to defaultrunlevel:>;

原始碼?20: 新增 pcmcia 到預設 runlevel

# rc-update add pcmcia default

8.c. 系統資訊

Root密碼

我們藉由輸入以下指令來更改Root密碼

We change the root password by entering the following instructions.

原始碼?21: 設定Root密碼

 # passwd

如果您希望讓Root能夠從文字介面登入,請增加tts/0/etc/securetty:

If you want Root to be able to log in from the text interface & #xff0c; please add ttts/0 to :

原始碼?22: 增加 tts/0 to /etc/securetty

 # echo "tts/0" >> /etc/securetty

系統資訊

Gentoo 使用 /etc/rc.conf 來設定整個系統的一般設定。開啟 /etc/rc.conf 然後享受裡面完善的注解 :)

Gento uses /etc/rc.conf to set the general setup of the system. Open and enjoy the complete annotation:)

原始碼?23: 開啟 /etc/rc.conf

# nano -w /etc/rc.conf

就如同您所看到的,這個檔案有完善的注解讓您設定必要的參數。特別要注意 KEYMAP 變數,如果您設定錯誤的 KEYMAP 當您再用鍵盤輸入時會得到錯誤的結果。

As you can see & #xff0c; this file has a perfect note that allows you to set the necessary parameters. Particular attention is paid to the KEYMAP variable & #xff0c; if you set the wrong KEYMAP when you enter again with a keyboard, you will get the wrong result.

注意: 以 USB 為主的 SPARC 系統或相容的系統可能要選擇 i386 keymap (例如 "us") 而不是 "sunkeymap"。

PPC 在大部份的系統上使用 x86 的 keymaps。想要使用 ADB keymaps 的使用者將需要在開機時啟用核心內的 ADB keycode sendings 然後在 rc.conf 內設定一個 mac/ppc keymap。

PPC uses x86 keymaps on most systems. Users wishing to use ADB keymaps will need to activate ADB keycodes at startup and set a mac/ppc keymap in rc.conf.

如果你的硬體時鐘不是用 UTC,你需要在這個檔案中加入 CLOCK="local",不然會有一些時間偏移。

If your hard clock does not use UTC, you need to add CLOCK= #34; local" , otherwise there will be some time deviation.

設定好 /etc/rc.conf 以後,存檔然後離開。接下來繼續 安裝必要的系統工具

Sets up after xff0c; and then leaves the file. Next continues to install the necessary system tools .

9. 安裝必要的系統工具

9.a. 系統記錄器

第一個您需要做決定的工具是用來提供給系統記錄的功能。Unix 和 Linux 擁有一個很好的記錄功能的歷史 -- 若是您想要的話,您可以記錄所有發生在您系統上的事情至 logfiles。這將會需要用到 系統記錄器

The first tool you need to make a decision is used to provide a recording function for the system. Unix and Linux have a good record-keeping history -- if you want & #xff0c; you can record everything that happens on your system to logfiles. This will need to be used for .

Gentoo 提供許多個系統記錄器的選擇。分別為 sysklogd,它是一個傳統的系統記錄伺服器,syslog-ng ,是一個進階的系統記錄器,而 metalog 則是一個高度配置的系統記錄器。Portage 內或許有其他的記錄器 -- 我們提供的套件每天都在增加當中。

Gentoo provides many options for system recorders. The distinction is systemlogd, it is a traditional system record server & #xff0c; & #xff0c; it is a progressive system recorder xff0c; talog is a highly configured system recorder.

假如你打算使用 sysklogdsyslog-ng,你可能想要接著安裝 logrotate 因為這兩個紀錄器不會提供任何輪替紀錄檔的功能。

If you want to use sysklogd or syslog-ng, you may want to install because these two recorders will not provide any replacements.

請用 emerge 指令來安裝您想使用的系統記錄器,並使用 rc-update 將之加入至預設 runlevel。下面是一個安裝 syslog-ng 的例子。當然,它也適用於安裝您要用的系統記錄器:

Please install the system recorder you want to use with the emerge command xff0c; and add it to the default runlevel using rc-update. Below is an example of installation of syslog-ng. Of course #xff0c; it is also suitable for installing the system recorder you want to use #xff1a;

原始碼?1: 安裝系統記錄器

# emerge syslog-ng
# rc-update add syslog-ng default

9.b. 非必要: Cron 伺服器

接下來的則是 cron 伺服器。雖然您的系統並不一定需要安裝這個伺服器,但我們還是建議您安裝一個。然而,什麼是 cron 伺服器呢?cron 伺服器執行排定的指令。若您需要時常執行一些指令 (每天、每星期、或是每個月),則它將會是一個得力的助手。

Next is the cron server. Although your system does not necessarily need to install this server & #xff0c; we suggest that you install one. However & #xff0c; what is the cron server & #xff1f; cron server executes the assigned instructions. If you need to execute commands (daily, weekly, or monthly) #xff0c; it will be a powerful assistant.

針對無網路的安裝,我們只提供 vixie-cron。如果您想要安裝其他 cron ,您將需要等到之後再自行安裝。

& #xff0c; we only provide vixie-cron. If you want to install other cron & #xff0cs; you will have to install it later.

原始碼?2: 安裝 cron 伺服器

# emerge vixie-cron
# rc-update add vixie-cron default

9.c. 自由選擇:檔案索引

如果你想要為你系統上的檔案製作索引,讓你可以用 locate 工具快速找到他們的位置,你需要安裝 sys-apps/slocate

If you want to index files on your system xff0c; if you want to use the locate tool to quickly locate them xff0c; you need to install .

原始碼?3: 安裝 slocate

# emerge slocate

9.d. 檔案系統工具

依照您使用的檔案系統,您應該安裝必要的檔案系統工具 (用來檢查檔案系統的正確性、建立額外的檔案系統等等)。

Based on the file system you use & #xff0c; you should install the necessary file system tools (to check the correctness of the file system, create additional file systems, etc.).

下面的表格列出各檔案系統所需要安裝的工具,不是所有的架構都支援所有的檔案系統。

The table below lists the tools that each file system needs to install & #xff0c; not all structures support all file systems.

檔案系統工具安裝指令
XFSxfsprogsemerge xfsprogs
ReiserFSreiserfsprogsemerge reiserfsprogs
JFSjfsutilsemerge jfsutils

如果您不需要使用任何網路相關的程式(例如說 rp-pppoe 或 dhcp 客戶端),可以繼續閱讀 設定開機管理員

If you do not need to use any network-related programs (e.g. rp-pppoe or dhcp client) & #xff0c; you can continue reading

9.e. 網路工具

非必要:安裝 DHCP 客戶端

如果你需要 Gentoo 自動取得你網路介面的 IP 位址,你需要在你的系統上安裝 dhcpcd (或其他 DHCP 客戶端)。如果你目前不先做的話,在安裝完成後你可能不能連接網際網路!

If you need Gentoo to automatically access the IP address of your network interface & #xff0c; you need to install dhcpcd (or other DHCP client) on your system. xff0c if you do not do it first; you may not be able to connect xff01 after installation has been completed;

原始碼?4: 安裝 dhcpcd

 
# emerge dhcpcd 

非必要:安裝 PPPoE 客戶端

如果您需要 rp-pppoe 來連線至網際網路,您需要安裝它。

If you need rp-pppoe to connect to the Internet #xff0c; you need to install it.

原始碼?5: 安裝 rp-pppoe

# USE="-X" emerge rp-pppoe

USE="-X" 將會禁止 xorg-x11 因為依存性而被安裝至系統 (rp-pppoe 有圖型介面工具;如果您想要啟動它們,您可以晚點再重新編譯 rp-pppoe ,但您也可以現在就安裝 xorg-x11 -- 這將會需要更長的編譯時間)。

USE= & #34; will prohibit xorg-x11 from being installed into the system because of dependability (rp-pppoe has a graphical interface tool #xff1b; if you want to activate them xff0c; you can reformulate rp-point & #xff0c; but you can install xorg-x11 now -- this will require longer time for codification).

現在請接著閱讀 設定開機管理員

Read .

10. 設定開機管理程式

10.a. 決定您的選擇

介紹

現在您的核心已經設定和已經編譯好相關的系統設定檔了,是時候該安裝一個程式來驅動開機時所需要的核心。這個程式叫做 開機程式。適用於 x86, Gentoo Linux 提供 GRUBLILO。在我們繼續安裝其中一個開機程式之前,我們將會告訴您如何設定 framebuffer (如果您想要的話)。使用 framebuffer,您可以在文字介面下執行有限度的圖示功能(如 Gentoo 提供的漂亮 bootsplash)。

Now your core has set and compiled associated system configurations xff0c; it is time to install a program to drive the engine. This program is called . It is suitable for x86, Gentoo Linux provides GRUB and ; you want to use #ffffffts0>; you want ; you want to use & #lffffffts0; you want & #lfffffffts.int< < < & < #lpffffffftbn< < < < #l #l < < #l & #l #l #l #l & & & & #lffffffffffffftbtbtbt. & < & & & & & & & < < & #wwwwwww # #wwwwwwwwww & & & & & & & & & & & # # # # # # # # #www # # # # # #wwwwwwwwwwww # # # # #l #l # # #l #l # #l # # # # # # # # # # # #l #l # #

選擇性: Framebuffer

如果 您的核心有設定 framebuffer 的支援(或是您使用 genkernel 的預設核心設定),您可以在開機管理原設定中加入 vga 及/或 video 參數來啟動設定。

If your core is set with frambuffer support & #xff08; or if you use the default core settings genkernel xff09; #xff0c; you can insert the parameters and/or in the opening administration settings.

首先你需要了解你使用那種 framebuffer 裝置。如果你使用 Gentoo patch 過的核心(像是 gentoo-sources),你可能已經選擇 vesafb-tng 做為 VESA driver type(這類核心的預設值)。如果是這樣的話,你是使用 vesafb-tng 而且不需要 vga 參數。不然的話是使用 vesafb 裝置,需要設定 vga 參數。

First of all, you need to know what kind of frambuffer device you've used. If you've used Gentoo patched cores (like gentoo-sources) & #xff0c; if so, you may have chosen as VESA triver type. If so, you've chosen to use and you don't need to use vga/span>.

vga 參數設定 vesafb 在你的螢幕上使用的解析度及色深。如同 /usr/src/linux/Documentation/fb/vesafb.txt (當你安裝核心套件時就會有這個檔案)中說的,你要傳一個對應解析度及色深的 VESA 編號。

argument set vesafb on your screen. Like (this file will be available when you install the core package); you have to pass a VESA number for resolution and color depth.

底下列出你需要在 vga 參數中設定的編號及相對應的解析度及色深。

Lists below the number and corresponding resolution and color depth that you want to set in vga parameters.

640x480800x6001024x7681280x1024
2560x3010x3030x3050x307
32k0x3100x3130x3160x319
64k0x3110x3140x3170x31A
16M0x3120x3150x3180x31B

video 參數設定 frambuffer 裝置設定。需要給它 frambuffer 裝置(2.6 核心使用 vesafb,2.4 核心使用 vesa),接著是你想要啟動的控制參數。全部的變數都列在 /usr/src/linux/Documentation/fb/vesafb.txt 之中,但我們會告訴你三個最常用到的選項。

video argument setup frambuffer device settings. All variables are listed in ; but we will inform you of the three most common options.

選項說明
ywrap假設顯示卡可以循環使用記憶體(例如說當到結尾時自動從開頭繼續)
mtrr設定 MTRR 暫存器
mode( 只適用 vesafb-tng)
設定解析度,色深及更新頻率。例如說,1024x768-32@85 代表解析度 1024x768, 32 bit 色深及 85Hz 更新頻率。

更多的資訊可以在 /usr/src/linux/Documentation/fb/vesafb.txt 找到。

More information can be found at .

最後這兩個參數可能會像 vga=0x318 video=vesafb:mtrr,ywrapvideo=vesafb:mtrr,ywrap,1024x768-32@85。請記得(或是寫下)您適用的數值;您稍後將需要到它。

The last two parameters may be like vga= 0x318video= vesafb: mtrr, ywrap or . Remember xff08; or write xff09; your appropriate value xff1b; you will need it later.

現在開始安裝 GRUB 或是 LILO

GRUB.

10.b. 預設: 使用 GRUB

了解 GRUB 的意義

了解 GRUB 的關鍵就是必須了解 GRUB 如何看待相關的硬碟和分割區。您的 Linux 分割區 /dev/hda1 將會被 GRUB 解釋為 (hd0,0)。請注意 hd0,0 外面的括號 - 它們是不可或缺的。

The key to understanding GRUB is to understand how GRUB views the relevant hard disks and partitions. Your Linux partition will be interpreted by GRUB as . Note that the brackets outside are indispensable.

硬碟的計算是從 0 而不是 "a" 開始。請特別注意硬碟,GRUB 將不會計算 atapi-ide 光碟機和燒錄機等裝置。(在正常的情況來說,除非特別從 bios 設定 SCSI 磁碟開機,不然它們將取得比 ide 磁碟更高的號碼。當你要求 BIOS 從別的硬碟開機時,那個 硬碟會被視為 hd0

Hard disk calculations are starting from 0 instead of & #34; a#34;. Pay special attention to hard disks & #xff0c; GRUB will not calculate devices such as atapi-ide CDs and burners. & #xff08; , in normal circumstances; unless SCSI drives & #xff0c are set from bios in particular; otherwise they will get a higher number than an & #xfff0c; when you ask BIOS to start from another hard disk & #xff0c; the hard disk will be viewed as .

假如您有一個在 /dev/hda 的硬碟,在 /dev/hdb 的光碟機,在 /dev/hdc 的燒錄機,第二棵硬碟在 /dev/hdd 和沒有任何 SCSI 裝置。 /dev/hdd7 將會被翻譯成 (hd1,6)。這或許聽起來有點詭異,但是我們將可以利用 GRUB 提供的 tab 完成結構(tab complete mechanism)讓您設定許多硬碟和分割區時方便許多。

If you have a hard disk & #xff0c at /dev/hdb at /dev/hdb; if you have a disk & #xff0c at xff0c; if you have a hard disk at and no SCSI devices. /dev/hdd7 at /dev/dev/hdc will be translated into (hd1,6) and there are no SCSI devices.

差點忘記了,我們現在該安裝 GRUB 了。

Almost forgot #xff0c; we should install GRUB now.

安裝 GRUB

要安裝 GRUB,我們先需要安裝它:

To install GRUB, we need to install it xff1a;

原始碼?1: 安裝 GRUB

# emerge grub

雖然 GRUB 已安裝完成,我們還需要為它編寫一個設定檔並且將 GRUB 程式安裝在 MBR,如此一來 GRUB 將自動的開啟到您新建立的系統核心。使用 nano (或是其他的編輯器)建立一個 /boot/grub/grub.conf 檔案:

Although GRUB has installed & #xff0c; we also need to create a configuration file for it and install the GRUB program in MBR, thus GRUB opens automatically to the core of your newly created system. Use nano & #xff08; or other editor #xff09; create a file #xff1a;

原始碼?2: 建立 /boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

現在我們將要開始編寫grub.conf。您將會在下面找到兩個按照我們的範例所使用的 grub.conf 設定檔,使用的是核心 kernel-2.6.11-gentoo-r3。我們只會在第一個 grub.conf 內進行註解。請確認您的核心映像檔案名稱,如果需要,也請確認您的 initrd 映像檔。

Now we're going to start writing grub.conf. You will find below two profiles grub.conf & #xff0c; using the core kernel-2.6.11-gentoo-r3. We will only comment in the first grub.conf. Please confirm your core image file name xff0c; if fff0c; also confirm your

  • 第一個 grub.conf 適用於沒有使用 genkernel 編譯核心的使 用者
  • 第二個 grub.conf 適用於使用 genkernel 的使用者

注意: 如果您的跟目錄檔案系統是 JFS,您 必須kernel 那行文字加入 "ro" ,因為 JFS 在允許可讀寫的掛載前,需要重讀 (replay) 它的記錄檔。

原始碼?3: 未使用 genkernel 的 grub.conf

# 將為開機預設。0為第一,1為第二,以此類推。
default 0
# 使用預設前等待的開機秒數。
timeout 30
# 將漂亮又肥大的 splash-image 啟用:)
# 如果您沒有安裝顯示卡,請註解這行
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.11-r3
# 儲存核心檔的分割區(或是作業系統)
root (hd0,0)
kernel /kernel-2.6.11-gentoo-r3 root=/dev/hda3

# 以下三行為 Windows 系統適合的雙重開機。
# 在我們的例子,Windows是放在 /dev/hda6
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

原始碼?4: genkernel 使用者適用的 grub.conf

default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.11-r3
root (hd0,0)
kernel /kernel-2.6.11-gentoo-r3 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev
initrd /initrd-2.6.11-gentoo-r3

# 如果您想要雙重系統開機的話
title=Windows XP
root (hd0,5)
makeactive
chainloader +1

注意: 如果您使用不同的分割設定或是核心檔案,請依個人的設定更改。但是請確認所有 GRUB 相關的裝置(如(hd0,0))和掛載點有相連的,而非 root。換句話說, (hd0,0)/grub/splash.xpm.gz 實際上是放在 /boot/grub/splash.xpm.gz 因為 (hd0,0)/boot

如果您需要自行輸入任何參數給核心,只要將他們放在 kernel 的指令後面。我們已經傳送了一個(root=/dev/hda3 或是 real_root=/dev/hda3),但是您也可以傳送其他的指令。舉例來說,我們使用 video 且/或 vga 來設定之前提過的 framebuffer。

If you need to enter any parameters into the core xff0c; just put them behind the Kernel command. We have sent one xff08; root=/dev/hda3 or ) xff0c; but you can also send other commands.

如果你使用 2.6.7 或更新的核心,而且你因為 BIOS 不能處理大容量的硬碟而調整了跳腳,你需要加入 hdx=stroke.

If you use 2.6.7 or the updated core xff0c; and you adjust your foot to <#xff0c; you need to add hdx#61; stroke.

genkernel 使用者應該要知道他們的新使用的和 Installation CD 一樣。舉例來說,如果您有 SCSI 裝置,您應該在核心選項後面加入 doscsi

genkernel users should know that their new use is the same as the Establishment CD. & #xff0c; if you have a SCSI device & #xff0c; you should add after the core option.

現在儲存 grub.conf 檔案然後離開。你接下來需要把 GRUB 安裝到 MBR(Master Boot Record) ,讓他開機時自動執行。

Saves grub.conf and leaves. You will then have to install the GRUB to MBR & #xff0c; let him start automatically.

GRUB 開發員建議使用 grub-install。然而,如果因為一些原因讓 grub-install 不能正常工作,你依然可以選擇手動安裝 GRUB。

GRUB Developer suggests using grub-instal. However, xff0c; if for some reason does not work #xff0c; you can still choose to install GRUB manually.

接下來繼續 預設:使用 grub-install 設定 GRUB 或是 另一種選擇:手動設定 GRUB

or

預設:使用 grub-install 設定 GRUB

你需要輸入 grub-install 指令來安裝 GRUB。然而,因為你是在 chrooted 的環境,grub-install 並不能順利執行。我們需要更新 /etc/mtab (這個檔案包含了所有已掛載的檔案系統的資訊)幸運的,有一個方便的方法來完成 - 只要將 /proc/mounts 複製到 /etc/mtab 就好了:

You need to enter grub-install commands to install GRUB. However, #xff0c; because you are in the chrooted environment & #xff0c; grub-install does not go smoothly. We need to update (this file contains information on all mounted file systems) xff0c; there is a convenient way to do it - as long as copy to /etc/mtab #xff1a;

原始碼?5: 更新 /etc/mtab

# cp /proc/mounts /etc/mtab

現在可以使用 grub-install 安裝 GRUB。

GRUB can now be installed using grub-instal.

原始碼?6: 執行 grub-install

# grub-install /dev/hda

如果您有更多關於 GRUB 的問題,請參考 GRUB FAQ 或是 GRUB 說明

If you have more questions about GRUB & #xff0c; refer to GRUB FAQ or GRUB help.

注意: 當您重新安裝核心時,您不再需要複製其他檔案了。只要在編譯完核心後執行 make install;他就會自動的幫您複製檔案,並且調整GRUB設定檔。

接下來繼續 重新開機系統

.

另一種選擇:手動設定 GRUB

接下來輸入 grub 來開始設定。你可以看到 grub 的提示符號 grub> 。現在,你需要輸入正確的指令來安裝 GRUB 開機紀錄到硬碟中。

Enter grub to start setting. You can see grub's hint sign grub> . Now , you need to enter the correct command to install a GRUB opening log on a hard disk.

原始碼?7: 啟動 GRUB shell

 
# grub 

注意: 如果你的系統沒有軟碟機,可以在上面的指令加入 --no-floppy 選項來避免 grub 偵測 (不存在的) 軟碟機。

在設定範例檔中我們想要安裝 GRUB 讓他可以從開機分割區 /dev/hda1 讀取資訊,還有安裝 GRUB 開機紀錄到硬碟的 MBR (主開機紀錄) 讓我們打開電腦後所看到的第一個東西就是 GRUB。當然,如果你沒有依照安裝時的範例設定檔,依據你的設定改變指令。

The first thing we want to install in the configuration case file is GRUB. Of course xff0c; if you do not have the model configuration file xff0c; change the command according to your configuration.

GRUB 的自動完成技巧可以在 GRUB 內使用。例如說,如果你輸入 "root (" 然後按下 TAB,你會看到裝置列表(例如說 hd0)。如果你輸入 "root (hd0," 再按下 TAB,你會看到所有可以選擇的分割區列表(例如說 hd0,0)。

GRUB's auto-completion techniques can be used in GRUB. For example, & #xff0c; if you type & #34; root(" then press TAB, you will see a list of devices (e.g. hd0). If you type & #34;

藉著使用 tab 自動完成,設定 GRUB 不再是那麼困難了。所以現在繼續設定 GRUB 吧 :)

Automatically complete & #xff0c using tab; setting GRUB is no longer so difficult. So continue setting GRUB now:)

原始碼?8: 安裝 GRUB 到 MBR

 
grub> root (hd0,0)          (指定你的 /boot 分割區位置) 
grub> setup (hd0)           (安裝 GRUB 到 MBR) 
grub> quit                  (離開 GRUB shell) 

注意: 如果你想要安裝 GRUB 到某一個分割區而不是 MBR,你需要改變 setup 指令指向正確的分割區。例如說,你想要把 GRUB 安裝到 /dev/hda3,那指令就變成 setup (hd0,2)。然而很少使用者需要知道這個。

如果你使用 GRUB 有任何問題,請查閱GRUB FAQGRUB 手冊

If you use GRUB with any problems & #xff0c; see GRUB FAQ or GRUB Handbook.

接著繼續重開機系統

Continue at .

10.c. 其他選擇: 使用 LILO

安裝 LILO

LILO,LInuxLOader 是 Linux 開機程式中最穩定的一個。但是,它缺少一些 GRUB 所有的功能(這就是為什麼 GRUB 越來越受歡迎)。原因是 LILO 目前只用在 GRUB 無法使用的系統上,GRUB 不能但是 LILO 能。當然,也是有熟悉 LILO 的使用者繼續愛用著。不論那個, Gentoo 都支援,看到這邊有代表著您有興趣要安裝 LILO。

LILO, LINUXLOOD is the most stable of Linux starters. But & #xff0c; it lacks all GRUB functions & #xff08; that's why GRUB is becoming more popular & #xff09; because LILO is currently only used on systems that GRUB cannot use xff0c; GRUB cannot but LILO can. Of course xff0c; it is also used by users who are familiar with LILO. Regardless of that #xff0c; Gentoo supports #xff0c; see here that you are interested in installing LILO.

安裝 LILO 很簡單;只需要使用 emerge

Installing LILO is simple xff1b; just use emerge.

原始碼?9: 安裝 LILO

# emerge --usepkg lilo

設定 LILO

要設定 LILO,您一定要建立 /etc/lilo.conf。開啟您最喜歡的編輯器(在手冊內我們使用 nano 確保所有文件的一慣性)然後建立此檔。

To configure LILO, you must create . Open your favorite editor xff08; in the manual we use nano to ensure that all documents are #xff09; and then create this file.

原始碼?10: 建立 /etc/lilo.conf

# nano -w /etc/lilo.conf

不久之前,我們已經請您記住您所建立的核心檔案名稱。以下的 lilo.conf 範例,我們將假設核心名稱為 kernel-2.6.11-gentoo-r3。我們也使用範例內的分割設定為範例。共有兩個部份:

Not long ago xff0c; we have asked you to remember the name of the core file you have created. The following example of Lilo.conf, we will assume that the core name is kernel-2.6.11-gentoo-r3. We will also use the partition settings in the template as examples. There are two parts xff1a;

  • 一個適用於沒有使用 genkernel 編譯核心的使用者
  • 另一個則是適用於使用 genkernel 編譯核心的使用者

請確任您的核心映像檔案名稱,如果需要,也確認您的 initrd 檔案名稱。

Please make sure that your core image file name xff0c; if necessary xff0c; also confirm your initrd filename.

注意: 如果您的跟目錄檔案系統是 JFS,您 必須kernel 那行文字加入 "ro" ,因為 JFS 在允許可讀寫的掛載前,需要重讀 (replay) 它的記錄檔。

原始碼?11: /etc/lilo.conf 範例

boot=/dev/hda             # 將 LILO 安裝到 MBR
prompt                    # 給予使用者選擇系統的畫面
timeout=50                # 開啟預設選項前等待五秒

default=gentoo            # 當 timeout 所設定的時間超過時,自行開啟 "gentoo"

# 非 genkernel 使用者
image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo            # 這個部份的名稱
  read-only               # 以唯讀的方式開啟 root
  root=/dev/hda3          # 根(╱)系統的位置

# 使用 genkernel 的使用者
image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
  initrd=/boot/initrd-2.6.11-gentoo-r3

# 以下兩行只使用於多重開機到 Windows 系統。
# 在我們的例子裡,Windows 是放在 /dev/hda6.
other=/dev/hda6
  label=windows

注意: 如果您使用不同的分割方式或是核心檔案,請自行更改。

如果您需要重送其他參數給核心,請加入 append 的語句。舉例來說,我們將加入 video 開啟 framebuffer:

If you need to retransmit other parameters to the core & #xff0c; please add the phrase append. , for example, we will add to open frambuffer:

原始碼?12: 使用 append 加入核心參數

image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo
  read-only
  root=/dev/hda3
  append="video=vesafb:mtrr,ywrap,1024x768-32@85"

如果你使用 2.6.7 或更新的核心,而且你因為 BIOS 不能處理大容量的硬碟而調整了跳腳,你需要加入 hdx=stroke.

If you use 2.6.7 or the updated core xff0c; and you adjust your foot to <#xff0c; you need to add hdx#61; stroke.

genkernel 使用者應該要知道他們的新使用的和 Installation CD 一樣。舉例來說,如果您有 SCSI 裝置,您應該在核心選項後面加入 doscsi

genkernel users should know that their new use is the same as the Establishment CD. & #xff0c; if you have a SCSI device & #xff0c; you should add after the core option.

現在儲存檔案然後離開。要完成動作,您需要執行 /sbin/lilo 放 LILO 可以套用 /etc/lilo.conf 到系統上(安裝到磁碟上)。請注意,每次您安裝新的核心時,您將需要再次執行 /sbin/lilo

Save the file now and leave. To complete the action & #xff0c; you need to execute for LILO to apply to xff08; install to disk xff09; xff0c; each time you install a new core & #xff0c; you will need to execute #ff01;

原始碼?13: 完成 LILO 安裝

# /sbin/lilo

注意: 當您重新安裝核心時,您不再需要複製其他檔案了。只要在編譯完核心後執行 make install;他就會自動的幫您複製檔案,並且調整GRUB設定檔。

接下來請到 重新開機系統

Next, please visit to restart the system /a>.

10.d. 重新開機系統

離開 chrooted 的環境然後卸載所有掛載的分割區。接著輸入你已經等很久的神奇指令: reboot

Depart from the chrooted environment and unload all the mounted partitions. Then enter your long-awaited magic command xff1a; .

原始碼?14: 卸載所有分割區然後重新開機

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

當然,不要忘了移除可開機的 CD,否則等一下會從 CD 開機而不是你剛裝好的 Gentoo 系統。

Of course #xff0c; don't forget to remove a startable CD, or it'll start from the CD instead of the Gentoo system that you just installed.

重開機好了以後,接著完成 完成你的 Gentoo 安裝

xff0c; and .

11. 最終化您的 Gentoo 安裝

11.a. 使用者管理

加入一個每天使用的使用者

在 Unix/Linux 系統下登入成 root 工作是危險的,並應該盡量的避免。所以我們 強烈的建議您新增另一個使用者來應付日常的使用。

Login into root under the Unix/Linux system is a dangerous #xff0c of /span; and should be avoided as much as possible. So our .

使用者所在的群組定義了使用者可以執行那些工作?底下的表格列出許多你會想用的重要群組:

The user's grouping defines the tasks that the user can perform xff1f; the table below lists many important groups that you would like to use xff1a;

群組說明
audio可以存取音效裝置
cdrom可以直接存取光學儲存裝置(ex:光碟機)
floppy可以直接存取磁碟
games可以玩遊戲
usb可以存取 USB 裝置
video可以存取影像擷取器以及使用硬體加速
wheel可以使用 su

例如,建立一個叫做 john 的使用者,他是 wheelusers、以及 audio 群組 的一員,請先用root登入(只有root可以新增使用者),然後執行 useradd

For example xff0c; create a group called john xff0c; he is wheel, user, and audio xff0c; please log in with root (only root can add users) xff0c; then run useradd/span> #xffa;

原始碼?1: 加入一個每天使用的使用者

Login: root
Password: (您的root密碼)
# useradd -m -G users,wheel,audio -s /bin/bash john
# passwd john
Password: (輸入 john 使用者的密碼)
Re-enter password: (再次輸入密碼確認)

如果這個使用者需要在 root 下執行一些任務,他們可以使用 su - 暫時取得 root 的權限。另一個方法則是使用 sudo 套件,若是正確的設置該套件,它將是非常安全的。

If this user needs to perform some tasks xff0c under root; they can use su- for the time being to get root privileges. Another method is to use the package xff0c; if the set is correctly set xff0c; it will be very safe.

11.b. 自由選擇:安裝 GRP 套件

重要: 這部份只適用 GRP 使用者。其他使用者請跳過這部份繼續閱讀 然後呢?

現在你的系統開機好了,以你建立的使用者登入(例如 john),然後 su - 取得管理者權限:

Now your system is open #xff0c; login (e.g. ) #xff0c; then to get administrator privileges #xff1a;

原始碼?2: 取得管理者權限

$ su -
Password: (輸入管理者 (root) 密碼)

現在我們要改變 Portage 的設定讓它搜尋第二張光碟(套件光碟)上的預編套件,首先掛載光碟:

Now we're going to change the Portage configuration to allow it to search for the preset on the second disk (set CD) & #xff0c; first to load the CD & #xff1a;

原始碼?3: 掛載光碟

(將套件光碟放到光碟機中)
# mount /mnt/cdrom

現在設定 Portage 使用 /mnt/cdrom 目錄中的套件:

Configure Portage to use the package in directory xff1a;

原始碼?4: 設定 Portage 使用/mnt/cdrom

# ls /mnt/cdrom

(如果有 /mnt/cdrom/packages 目錄:)
# export PKGDIR="/mnt/cdrom/packages"

(不然的話:)
# export PKGDIR="/mnt/cdrom"

現在安裝你想要用的套件。套件光碟包含多種的預編套件,例如 KDE:

Install the package that you want to use now. The package disk contains multiple presets & #xff0c; e.g. KDE & #xff1a;

原始碼?5: 安裝 KDE

# emerge --usepkg kde

確定現在就安裝預編套件。當你執行 emerge --sync 更新 Portage (之後你就會學到),預編套件可能不符合你更新後的 ebuild 檔。可可以試試用 emerge --usepkgonly 取代 emerge --usepkg 避免這個問題。

Make sure you install the preset now. When you run update Portage (and then you will learn) #xff0c; the preset package may not match your updated eBuild file. You can try to avoid this by .

恭喜,你的系統完全搞定了!接下來繼續然後呢? 學習更多關於 Gentoo 的東西。

Congratulations #xff0c; your system is complete! Next

12. 然後呢?

12.a. 文件

恭喜!您現在有一個可以運行的 Gentoo 系統了。但接下來該何去何從呢?您接下來有什麼選擇?該先探索什麼?Gentoo 提供它的使用者許多的方向,因此,它提供了許多的特點並編寫成文件。

Congratulations xff01; you now have a functioning Gentoo system. But where do you go from xff1f; what choice do you have? xff1f; what do you explore first? xff1f; Gentoo provides many directions for its users xff0c; xff0c; therefore xff0c; it provides many features and documents.

您應該先看一看 Gentoo Handbook 的下一章節名為 使用 Gentoo,它將會告訴您如果讓您的軟體保持在最新的狀態、如果安裝更多的軟體、什麼是 USE 參數、Gentoo Init 系統的運作方式等等。

You should first look at the next section of Gentoo Handbook under the name , it will tell you if you keep your software up to date, if you install more software, what are the USE parameters, how the Gentoo Init system works, etc.

如果您有興趣將您的系統最佳化成桌面使用,或著您想要學習如果設定您的系統至一個完整的桌面系統,請閱讀 Gentoo 桌面文件資源

If you are interested in optimizing your system to a desktop using xff0c; or if you want to learn to configure your system to a full desktop system xff0c; read Gentooo desktop file .

Gentoo Security Handbook 上也有豐富的文件值得一讀。

There are also rich documents worth reading at Gentoo Security Handbook.

請翻閱我們的 文件資源 一頁取得我們提供的完整的文件列表。

Read our

12.b. Gentoo 線上

我們永遠歡迎您加入 Gentoo 討論區 或是我們眾多的 Gentoo IRC 頻道

We will always welcome you to Gentoo or to our many Gentoo IRC channel

我們也有一些對所有使用者公開的 郵寄列表。這頁將會介紹如何加入的資訊。

We also have mailing list . This page will provide information on how to join.

我們閉嘴的時間到了,並讓您享受您的安裝過程 :)

The time has come for us to shut up #xff0c; and let you enjoy your installation:)

12.c. 2005.0 後的改變

改變?

Gentoo 的演進相當快。底下部份說明影響 Gentoo 安裝的重要部份。我們只列出安裝過程中共同的部份,安裝過程中不會用到的套件並不包含在其中。

Gentoo is moving very quickly. The bottom part is about the important part that affects Gentoo installation. We list only the common part of the installation process & #xff0c; the package that will not be used in the installation process is not included in it.

底下的改變是在你更新完系統(重開機前)需要注意的:

The changes below are those that you need to take note of before you complete the system (before restarting) #xff1a.

  • baselayout 套件有一些重要的改變,包含在 Gentoo 網路設定中提到的。這些改變包括 /etc/conf.d/net 檔案新的語法(雖然舊的也還支援)。建議你趕快改用新 的設定。

1. Portage 介紹

1.a. 歡迎使用 Portage

Portage 大概是 Gentoo 在軟體管理方面最傑出的創造。因為他具有很高的彈性及數不清的功能,通常被視為 Linux 中最好的軟體管理工具。

Portage is probably the best creation of Gentoo in software management. Because he has a high elastic and indistinguishable function & #xff0c; he is usually regarded as the best software management tool in Linux.

Portage 完全以 PythonBash 寫成,因此他可以完全的讓使用者看透,因為這兩個都是草稿語言。

Portage writes Python and Bash as xff0c; thus he can completely make the user read through #xfff0c; because both are draft language.

大部分使用者會透過 emerge 工具使用 Portage。這一章並不會重複 emerge man page 中提供的資訊。如果你想要了解完整的 emerge 選項,請查閱 man page:

Most users use Portage through emerge tools. This chapter does not repeat the information provided in the emerge man page. If you want to know the full emerge option & #xff0c; see man page & #xff1a;

原始碼?1: 閱讀 emerge man page

$ man emerge

1.b. Portage 樹

Ebuilds

當我們談到套件時,通常是指透過 Portage 樹讓 Gentoo 使用者可以取得的軟體名稱。 Portage 樹是指 ebuilds 的集合,檔案中包含 Portage 維護軟體所需的資訊(安裝,搜尋,查詢,...)。這些 ebuilds 預設存放在 /usr/portage

When we talk about packages & #xff0c; usually the name of the software that Gentoo users can access through the Portage tree. Portage tree means the collection of #xff0cs ebuilds; the file contains the information required for the Portage maintenance software (installation & #xff0c; search #xff0c; query #xff0c;...). These ebulds are stored in .

當你要求 Portage 對某個軟體名稱執行某樣動作時,他都會以系統上的 ebuilds 為基礎。因此定期更新系統上的 ebuilds 讓 Portage 知道新的軟體,安全更新等等是很重要的。

When you ask Portage to do something about a software name & #xff0c; he's all based on the system's eBuilds. It is therefore important to update the system regularly so Portage knows about the new software & #xff0c; security updates etc.

更新 Portage 樹

Portage 樹通常是用 rsync,一個快速的小型檔案傳輸工具,來更新。因為 emerge 指令提供一個 rsync 的前端介面,更新相當的簡單。

Portage trees are usually updated with rsync, a quick small file transfer tool ff0c; because

原始碼?2: 更新 Portage 樹

# emerge --sync

如果因為防火牆的限制讓你不能使用 rsync,你仍然可以使用每天自動產生的 Portage 快照。emerge-webrsync 工具自動下載及安裝最新的快照到你的系統中:

If the firewall restrictions prevent you from using rsync, you can still use the daily self-generated Portage snapshot. emerge-websync automatically downloads and installs the latest snapshot on your system xff1a;

原始碼?3: 執行 emerge-webrsync

# emerge-webrsync

1.c. 維護軟體

搜尋軟體

你可以使用 emerge 內建的搜尋功能來搜尋軟體。預設上,emerge --search 回覆符合搜尋字串的套件名稱(完全或部分符合)。

You can search for software using a search function built in emerge. Default & #xff0c; emerge --search replies the name of the package that matches the search string (complete or partially).

例如說,搜尋名稱中有 "pdf" 的所有套件:

e.g. xff0c; search names 34;pdf#34; all packages xff1a;

原始碼?4: 搜尋以 pdf 命名的套件

$ emerge --search pdf

如果你也想要搜尋套件描述,你可以使用 --searchdesc (或 -S):

If you also want to search for package descriptions & #xff0c; you can use (or ) #xff1a;

原始碼?5: 搜尋 pdf 相關套件

$ emerge --searchdesc pdf

當看到輸出內容時,你會發現他給你很多資訊。這些欄位很清楚的命名所以我們不會深入說明他們的意義:

When you see the content of the output & #xff0c; you find that he gives you a lot of information. These columns are clearly named so we don't go into their meanings & #xff1a;

原始碼?6: 'emerge --search' 輸出範例

*  net-print/cups-pdf
      Latest version available: 1.5.2
      Latest version installed: [ Not Installed ]
      Size of downloaded files: 15 kB
      Homepage:    http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/
      Description: Provides a virtual printer for CUPS to produce PDF files.
      License:     GPL-2

安裝軟體

一但你找到你喜歡的軟體,你可以使用 emerge 輕鬆的安裝他:只要加上套件名稱。例如說,安裝 gnumeric

But you find your favorite software xff0c; you can install him xff1a, for example, xff0c; install emerge ; just add a package name. xff0c; install

原始碼?7: 安裝 gnumeric

# emerge gnumeric

因為有很多套件都依賴其他套件,任何安裝特定套件的動作可能會導致安裝數個相依套件。別擔心,Portage 會完美的處理相依關係。如果你想要知道當你安裝某個套件時 Portage 可能 會安裝的軟體,加上 --pretend,例如說:

Because there are many other packages & #xff0c; any action to install a particular package may lead to the installation of several sets. Don't worry & #xff0c; Portage will be perfect for each other. If you want to know that when you install a package could be #xff0c; for example, xff1a;

原始碼?8: Pretend to install gnumeric

# emerge --pretend gnumeric

當你要求 Portage 安裝一個套件時,他會從網路上下載需要的原始碼(如果需要的話)並且預設存在 /usr/portage/distfiles。這之後會解壓縮,編譯,然後安裝套件。如果你想要 Portage 只下載原始碼而不安裝,在 emerge 指令後加入 --fetchonly 選項:

When you ask Portage to install a package & #xff0c; if you want Portage to download the required source code from the network (if necessary) and pre-existing . This will then uncompress & #xff0c; compile #xff0c; then install the package. If you want Portage to download only the original code xff0c; insert Emerge --fetchly option #xff1a;

原始碼?9: 下載 gnumeric 的原始碼

# emerge --fetchonly gnumeric

尋找已安裝套件的文件

許多套件有提供他們自己的文件。有時候,doc USE 設定決定要不要安裝這些文件。你可以使用 emerge -vp <套件名稱> 指令來檢查是否有 doc USE 設定。

Many packages provide their own files. Sometimes xff0c; USE settings determine whether to install these files. You can use emerge-vp & lt; package name > instructions to check if there are USE settings.

原始碼?10: 檢查 doc USE 設定是否存在

(alsa-lib 當然只是一個範例而已)
# emerge -vp alsa-lib
[ebuild  N    ] media-libs/alsa-lib-1.0.9_rc3  +doc -jack 674 kB

你可以在 /etc/make.conf 檔案中全域啟動或關閉 doc USE 設定,或是在 /etc/portage/package.use 檔案中設定個別套件。USE 設定 這一章包含這些的詳細說明。

You can set a separate package in the file. USE settings & #xff0c;

在套件安裝完以後,他的文件一般都在 /usr/share/doc 下以套件名稱為名的子目錄下。你也可以用 app-portage/gentoolkit 套件 中的 equery 工具列出所有已安裝的檔案。

After the package has been installed xff0c; his files are usually in the subdirectories named in the package name under . You can also list all installed files with the at http://www.gentoo.org/doc/en/gentoolkit.xml?style= preintable" rel= "noformlow" .

原始碼?11: 確認套件文件的位置

# ls -l /usr/share/doc/alsa-lib-1.0.9_rc3
total 28
-rw-r--r--  1 root root  669 May 17 21:54 ChangeLog.gz
-rw-r--r--  1 root root 9373 May 17 21:54 COPYING.gz
drwxr-xr-x  2 root root 8560 May 17 21:54 html
-rw-r--r--  1 root root  196 May 17 21:54 TODO.gz
  	 
(或者是,使用 equery 來找你有興趣的檔案:)
# equery files alsa-lib | less
media-libs/alsa-lib-1.0.9_rc3
* Contents of media-libs/alsa-lib-1.0.9_rc3:
/usr
/usr/bin
/usr/bin/alsalisp
(下略)

移除軟體

當你想從系統上移除軟體,使用 emerge --unmerge。這會告訴 Portage 從你的系統中移除所有這個套件安裝的檔案,除了該套件在安裝後你修改過的設定檔。留下這些設定檔讓你可以繼續使用這個套件,如果你重新安裝他的話。

When you want to remove software & #xff0c from the system, use emerge-unmerge. This will tell Portage to remove all installed files of this package from your system xff0c;

然而,一個 嚴重警告 是:Portage 並 不會 檢查別的套件是否依賴你要移除的套件。然而他會在你想要移除某些套件時警告你,因為移除後會搞雜系統。

However, xff0c; a serious warning is xff1a; Portage and

原始碼?12: 從系統上移除 gnumeric

# emerge --unmerge gnumeric

當你從系統上移除套件後,再安裝這個套件時自動安裝的相依套件會被留下來。要讓 Portage 知道相依套件也可以移除,使用 emerge--depclean 功能。我們會在之後討論他。

When you remove the package from the system xff0c; when you install the package, the self-installed compatible package will be left behind. To let Portage know that the dependent package can also remove xff0c; emerge, . We will discuss him later.

更新系統

為了讓你的系統保持在最佳狀態(更不用說安裝最新的安全性更新),你需要定期更新系統。因為 Portage 只檢查在 Portage 樹中的 ebuilds,首先你需要更新 Portage 樹。當你更新好了以後,你可以使用 emerge --update world 更新你的系統:

In order to keep your system in optimal condition (not to mention the installation of the latest security updates) xff0c; you need to update the system regularly. Because Portage only checks the ebulds, in the Portage tree; first you need to update the Portage tree. xff0c when you have updated it; you can update your system with

原始碼?13: 更新你的系統

# emerge --update world

Portage 會搜尋你安裝過的程式較新的版本。然而,他只會搜尋你要求安裝的軟體 - 而沒有相依套件。如果你相要更新系統上每一個套件,加上 --deep 參數:

Portage will search for a newer version of the program you have installed. However, xff0c; he will only search for the software you want to install - without matching packages. If you want to update every package on the system xff0c; plus parameterxff1a;

原始碼?14: 更新全系統

# emerge --update --deep world

因為你沒有刻意安裝的套件(因為其他套件相依而安裝)也會有安全更新,建議你偶爾執行這個指令。

Because you don't have a package that you want to install (because the other packages will be installed) you will also have a safe update #xff0c; you are advised to do this occasionally.

如果你最近改變過任何 USE 旗標,你可能會想要加入 --newuse。Portage 會檢查這個改變是否需要安裝新的套件會是重新編譯已安裝的套件:

If you have recently changed any of the , you may want to add . Portage will check whether the change will require the reprogramming of installed packages #ff1a;

原始碼?15: 執行完整更新

# emerge --update --deep --newuse world

存根套件

一些在 Portage 樹中的套件實際上並沒有任何內容,而是用在安裝一系列的套件。例如說,kde 套件會設定相依許多 KDE 相關套件來在你的系統上安裝一個完整的 KDE 環境。

Some packages in the Portage tree do not actually have any content xff0c; they are used to install a series of packages. For example, xff0c; kde sets will set up many KDE-related packages to install a complete KDE environment on your system.

如果你想要移除像這樣的套件,執行 emerge --unmerge 並不會有太大幫助,因為他的相依套件還是留在系統上。

If you want to remove a package like xff0c; emerge-unmerge will not be very helpful xff0c; because his dependent package is still on the system.

Portage 有能力移除孤立相依套件,但是因為套件的相依性是動態的,你首先需要更新整個系統,包括你改變 USE 旗標造成的改變。完成之後你可以執行 emerge --depclean 移除孤立相依套件。做完以後,你需要重新編譯動態連結到已移除軟體,但現在不再需要連結的套件。

Portage has the ability to remove isolation from the package & #xff0c; but because the package is dependent is dynamic & #xff0c; you first need to update the system & #xff0c; including changes caused by your changing the USE flag. After completion, you can execute emerge --depclean to remove isolation from the package. After completion xff0c; you need to recompose the link to the removed software #xff0c; no longer need to connect.

這些事情可以用底下的指令處理:

These things can be handled with instructions below #xff1a;

原始碼?16: 移除孤立相依套件

# emerge --update --deep --newuse world
# emerge --depclean
# revdep-rebuild

revdep-rebuild 是由 gentoolkit 套件提供的,不要忘記先安裝他:

is provided by xff0c; do not forget to install him xff1a; gentoolkit package;

原始碼?17: 安裝 gentoolkit 套件

# emerge gentoolkit

1.d. 當 Portage 在編譯時...

關於 SLOT,虛擬,分支,架構,和 Profile

如同我們前面說的,Portage 相當有威力,並且支援許多其他軟體管理工具缺乏的功能。為了了解這些功能,我們會從各角度解釋 Portage 而不會太深入。

As we said earlier, #xff0c; Portage is quite powerful & #xff0c; and supports functions that many other software management tools lack. To understand these functions #xff0c; we'll explain Portage from all angles and not go too far.

借著 Portage 但依套件的不同版本可以共同存在系統上。而其他發行版通常是以套件的版本來命名(像 freetypefreetype2),Portage 使用一種叫做 SLOT 的技術。ebuild 使用它的版本來宣告特定的 SLOT。有著不同 SLOT 的套件可以共存在同一個系統上。例如說,freetype 有著包含 SLOT="1"SLOT="2" 的 ebuild。

Portage, but can co-exist the system according to the different versions of the package. Other distributions are usually named after the version of the package (like freetype and ) #xff0c; Portage uses a technique called . ebuld uses its version to declare specific SLOTs. Different SLOT packages can coexist in the same system.

也有些套件提供相同的功能但透過不同方法實做。例如說,metalogdsysklogdsyslog-ng 都是系統紀錄器。依賴 "系統紀錄器" 的軟體不能只相依一種紀錄軟體,像是 metalogd,因為其他的紀錄器也是一個不錯的選擇。Portage 允許 virtuals:每一種系統紀錄器提供 virtual/syslog 讓軟體可以相依 virtual/syslog

There are also sets that provide the same functions but are implemented through different methods. For example, & #ffocc; metalogd and and syslog-ng are system recorders. Dependent & #34; system recorders #34; system recorders mphasis' >virtuals ; like

Portage 樹中的軟體可以存放在不同的分支中。預設系統只接受 Gentoo 視為穩定的套件。大部份新的軟體剛提交時,先加到測試中的分支去,代表在他標示為穩定前需要更多的測試。雖然你可以在 Portage 樹中看到這個軟體的 ebuild,在他標示為穩定分支前 Portage 不會去做更新。

The software in the Portage tree can be stored in different branches. The default system only accepts Gentoo as a stable package. Most of the new software has just been submitted & #xff0c; add to the parts in the test & #xff0c; the representative needs more tests before he labels it. Although you can see the software's ebuld, in the Portage tree; Portage will not be updated before he labels the stable branch.

一些軟體只能在特定的硬體架構上使用。可能是在其他架構上不能工作,需要更多測試,或者是提交這個軟體到 Portage 的發展者不能確認這個套件能不能在不同平台工作。

Some software can only be used on specific hardware structures. It may not work on other structures & #xff0c; it requires more tests & #xff0c; or the developers submitting this software to Portage cannot confirm that the package can work on different platforms.

Gentoo 的安裝包括特定的 profile,包含了在其他資訊之外,系統正常工作所需的套件列表。

Gentoo's installation includes a specific list of packages for the system's normal work, in addition to other information.

阻擋的套件

原始碼?18: Portage 警告阻擋套件 (加上 --pretend)

[blocks B     ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.2.2-r1)

原始碼?19: Portage 警告阻擋套件 (沒有 --pretend)

!!! Error: the mail-mta/postfix package conflicts with another package.
!!!        both can't be installed on the same system together.
!!!        Please use 'emerge --pretend' to determine blockers. 

Ebuild 包含特殊的區域告訴 Portage 關於他的相依性。相依性關係有兩種:宣告在 DEPEND 以及執行期相依,宣告在 RDEPEND。當其中一個相依關係中標記一個套件或虛擬 相容,他就成為阻擋套件。

Ebuld contains a special area telling Portage about his dependencies. There are two types of xff1a; declaring DEPEND and the duration of the operation xff0c; declaring . When one of the dependencies marks a package or virtual not compatible #xff0c; he becomes a blocker package.

要修正阻擋,你可以選擇不要安裝這個套件,或是先移除衝突的套件。在上面的範例中,你可以選擇不要安裝 postfix 或是先移除 ssmtp

To fix block #xff0c; you can choose not to install this package xff0c; or to remove conflicts first. In the example above xff0c; you can choose not to install or to remove .

也有可能是還沒安裝的兩個套件互相阻擋。在這種很少見的情況下,你應該先找出為什麼需要安裝這兩個套件。大部份的情況裝一個就足夠了。如果不是的話,請送一個錯誤到 Gentoo 錯誤追蹤系統

There may be two sets that have not yet been installed that are blocked. In this rare situation xff0c; you should first find out why they need to be installed. Most cases are enough. If not xff0c; send an error to .

封鎖的套件

原始碼?20: Portage 警告封鎖的套件

!!! all ebuilds that could satisfy "bootsplash" have been masked. 

原始碼?21: Portage 警告封鎖的套件 - 理由

!!! possible candidates are:

- gnome-base/gnome-2.8.0_pre1 (masked by: ~x86 keyword)
- lm-sensors/lm-sensors-2.8.7 (masked by: -sparc keyword)
- sys-libs/glibc-2.3.4.20040808 (masked by: -* keyword)
- dev-util/cvsd-1.0.2 (masked by: missing keyword)
- media-video/ati-gatos-4.3.0 (masked by: package.mask)
- sys-libs/glibc-2.3.2-r11 (masked by: profile)

當你想要安裝在你系統上還不能使用的套件時,你會得到封鎖的錯誤。你應該嘗試安裝其他在你系統上可用的軟體,或是等這個軟體可以用時再安裝。這裡總是有封鎖的理由:

When you want to install a package that you cannot use on your system, xff0c; you get a lockout error. You should try to install other software that is available on your system xff0c; or when this software is available. There is always a reason for blocking xff1a;

  • ~arch keyword 代表這個軟體還沒經過足夠的測試,而不能放到穩定分支。等 幾天或幾個禮拜再試試看。
  • -arch keyword-* keyword 代表這個軟體在你的系統架構下不能工 作。如果你確定這個套件的確可以動作,送出一個 bug 到我們的 bugzilla 網站。
  • missing keyword 代表這個程式還沒在你的系統架構下測試過。要求架構移植 團隊測試或是你幫他們測試,然後回報你的結果到我們的 bugzilla 網站。
  • package.mask 代表這個套件已經被發現毀壞,不穩定或是更糟的情況。而且被 刻意標記成不可使用。
  • profile 代表這個套件被發現不適合你的 profile。安裝這個套件可能毀了你 的系統,或是他就是不相容你用的 profile。

相依性遺失

原始碼?22: Portage 警告相依性遺失

emerge: there are no ebuilds to satisfy ">=sys-devel/gcc-3.4.2-r4".

!!! Problem with ebuild sys-devel/gcc-3.4.2-r2
!!! Possibly a DEPEND/*DEPEND problem. 

你輸入要安裝的套件相依在你的系統上不可取得的套件。請檢查 bugzilla 看看這件事被發現了沒,如果沒有的話,請回報他。除非你使用混合的分支這不應該發生,因此這是一個 bug。

Enter the package that you want to install as an unattainable package on your system. Check bugzilla to see if this has been discovered xff0c; xff0c; if not, please return it to him. xff0c should not have happened unless you use a mixed branch; so this is a bug.

模稜兩可的的 Ebuild 名稱

原始碼?23: Portage 警告模稜兩可的的 Ebuild 名稱

!!! The short ebuild name "aterm" is ambiguous.  Please specify
!!! one of the following fully-qualified ebuild names instead:

    dev-libs/aterm
    x11-terms/aterm

你想要安裝的套件他的名稱符合超過一個套件。你要同時提供他的類別名稱。Portage 會告訴你可能符合的讓你選擇。

You want to install the package his name matches more than one package. You want to provide his type names at the same time. Portage will tell you what your choice may match.

循環相依

原始碼?24: Portage 警告循環相依

!!! Error: circular dependencies: 

ebuild / net-print/cups-1.1.15-r2 depends on ebuild / app-text/ghostscript-7.05.3-r1
ebuild / app-text/ghostscript-7.05.3-r1 depends on ebuild / net-print/cups-1.1.15-r2 

兩個(或更多)你想要安裝的套件互相依賴,因此不能被安裝。這通常是 Portage 樹中的 bug。請等一下重新作 sync 然後再試一次。你也可以檢查 bugzilla 看看這件事被發現了沒,如果沒有的話,請回報他。

Two (or more) packages you want to install are dependent on each other & #xff0c; therefore, they cannot be installed. These are usually bugs in the Portage tree. Please recreate the sync and try again. You can also check bugzilla to see if this has been discovered xff0c; xff0c if not.

下載失敗

原始碼?25: Portage 警告下載失敗

!!! Fetch failed for sys-libs/ncurses-5.4-r5, continuing...
(...)
!!! Some fetch errors were encountered.  Please see above for details.

Portage 不能下載指定程式的原始碼而會繼續安裝其他的程式(如果可用的話)。這個錯誤可能因為鏡像站還沒正確同步,或是 ebuild 指向錯誤的位置。原始碼存放的伺服器也可能因為一些理由關閉了。

Portage cannot download the original code of the specified program and will continue to install other programs (if available). This error may be due to the fact that the mirror is not synchronized xff0c; or eBuild pointing to the wrong location. The server in the source code repository may also be disabled for a number of reasons.

一小時候在看看這個問題是否還存在。

When I was a kid, I was wondering if the problem still existed.

系統 Profile 保護

原始碼?26: Portage warning about profile-protected package

!!! Trying to unmerge package(s) in system profile. 'sys-apps/portage'
!!! This could be damaging to your system.

你已經要求移除屬於系統核心套件一部分的套件。他在 profile 中視為必要的因此不能從系統上移除。

You have requested the removal of packages that are part of the system core package. He considers them necessary in the profile and cannot be removed from the system.

2. USE 參數

2.a. 什麼是 USE 參數?

USE 關鍵字的概念

當您在安裝 Gentoo (或是其他版本,或是作業系統)您將需要依照環境而決定一些選擇。要設定一台伺服器和要設定一台工作站是不一樣的。一個遊戲工作站和一個需要 3D 立體加速的工作站也不同。

When you are installing Gentoo & #xff08; or other versions of xff0c; or the operating system xff09; you will have to decide on options according to the environment. It is different to set a server and a workstation. A game workstation is different from a workstation that requires 3D cube acceleration.

這不只是您要選擇安裝什麼套件,但是您也需要某些功能支援於某些套件。如果您不需要 OpenGL,那您為什麼要自找麻煩安裝然後編譯 OpenGL 到您大多數的套件呢呢?如果您不想要使用 KDE,那為什麼要多浪費時間編譯那些可以不用 KDE 也可以完整的執行的套件內的 KDE 支援呢?

This is not just what you want to install & #xff0c; but you also need some functionality to support some of the packages. If you do not need OpenGL,, why do you want to install OpenGL and compile it into most of your packages? & #xff1f; if you do not want to use KDE & #xff0c; why waste time compiling KDE support in packages that can be implemented without KDE or in full? #xff1f;

為了要幫助使用者決定要安裝/啟用,我們需要使用者簡單的了解他所使用的環境。這將強迫使用者決定他真的要什麼,和了解 Portage 套件管理系統的方便性。

To help users decide to install/activate xff0c; we need users to have a simple understanding of the environment they use. This will force users to decide what they really want xff0c; and to understand the ease of the Portage package management system.

一個 USE 參數的解釋

USE 參數就好像一個包含著相依性支援的關鍵字。如果您定義一個 USE 關鍵字,Portage 將會知道您需要那方面的支援。當然,這也會啟用相關依賴的套件。

The USE parameter is like a key word containing dependent support. If you define a USE key & #xff0c;Portage will know that you need that support. Of course & #xff0c; this will also enable a dependent package.

讓我們使用一個範例來講解:kde 的關鍵字。如果您的 Use 變數沒有這個,那所有選擇性 的 KDE 支援將 不會 把 KDE 的支援編進去。所有擁有 選擇性的 KDE 相依性套件將不會編入。如果您有將 kde 定義,那麼所有的這些套件將會以滿足相依性安裝。

Let us use an example to explain the xff1a; kde key. If your variable does not have this xff0c; all the KDE support

請正確的定義您所需要的關鍵字。

Please define the key word that you need correctly.

有那些 USE 關鍵字?

USE 參數總共有分兩種:全區性(Global)區域性(Local)

The USE parameters total two xff1a; region-wide xff08; Global) and .

  • 一個 全區性 的 USE 參數將被許多套件系統共用。這是一個大家所看到的 USE 參數。
  • 一個 區域性 的 USE 參數將被單一的套件用來選擇某些套件決定。

您可以到我們的 現在清單 查看完整的 USE 變數清單或是電腦上的 /usr/portage/profiles/use.desc。以下為一個簡短的列表:

You can visit our list at for the full list of USE variables or . The following is a short list #xff1a;

原始碼?1: 簡短的可用 USE 參數

gtk     - Adds support for x11-libs/gtk+ (The GIMP Toolkit)
gtk2    - Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both.
gtkhtml - Adds support for gnome-extra/gtkhtml
guile   - Adds support for dev-util/guile (interpreter for Scheme)
icc     - Use the Intel C++ Compiler if the package supports it
icc-pgo - Enable PGO data generation or use when use icc.
imap    - Adds support for IMAP

2.b. 使用 USE 參數

定義永久的 USE 參數

在我們希望您了解 USE 參數的重要性後,您現在需要定義您自己的 USE 參數了。

After we want you to understand the importance of the USE parameter xff0c; you now need to define your own USE parameter.

就如之前所提到的,所有的 USE 參數都是定義到 USE 的變數內。為了要方便使用者可以搜尋和選擇 USE 參數,我們已經提供了 預設的 USE 設定。這個設定包含著我們認為適合 Gentoo 使用者常用的。預設的變數是定義在 make.defaults 檔案。

As mentioned earlier, xff0c; all USE parameters are defined in the variable USE. The default variable is defined in the file make.defaults for ease of search.

你系統目前所使用的profile 是由 /etc/make.profile 的符號連結決定的。每一個 profile 屬於另一個更大的profile,最後形成了所有profile 的總和。最上層的 profile 是 base profile (/usr/portage/profiles/base)。

The profile currently used by your system is determined by the symbol link /etc/make.profile. Each profile belongs to another larger profile, ultimately forms the sum of all profiles. The top profile is baseprofile (/usr/portage/profiles/base).

來看看預設的設定:

To see the default settings #xff1a;

原始碼?2: 2004.3 profile 中 make.defaults 的加總 USE 變數

(這個範例是在 base,default-linux,default-linux/x86 和 default-linux/x86/2004.3 中設定的總和)
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
  foomaticdb gdbm gif gpm gtk gtk2 imlib jpeg kde gnome libg++ libwww mad
  mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
  quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"

就您所見,這個變數已經包含著許多關鍵字了。請 不要 更改 make.defaults 的檔案。所有的 USE 內的關鍵字將會在每次您更新 Portage 的時候自動被改回預設的方式!

As you can see xff0c; this variable already contains a number of keywords. Please do not change the files of make.defaults. All key words in will automatically revert to the default mode #xff01 every time you update Portage;

要更改這個預設的設定,您需要在 USE 變數內做更改。您需要更改的是 /etc/make.conf 內的 USE 變數。在這個檔案的變數內,您可以增加您需要的關鍵字或是移除不需要的關鍵字。您可以使用在關鍵字前面加上減號 ("-")。

To change this default & #xff0c; you need to change in USE variable. You need to change the /etc/make.conf variable . In this file variable xff0c; you can add the key word you need or remove the key that you do not need. You can use a reduction & #xff08; & #34;-#34; #xff09;

舉例來說,要移除掉 KDE 和 QT 但是要支援 ldap,您將需要在 /etc/make.conf 內定義類似以下的的變數:

xff0c for example; to remove KDE and QT but to support ldap, you will need to define the following variables in ;

原始碼?3: /etc/make.conf 的範例 USE 設定

USE="-kde -qt ldap"

設定套件自己使用的 USE 設定

有時候你想對一個(或一組)套件使用一個 USE 設定,但是不希望影響到整個系統。為了達成這個,需要先建立 /etc/portage 目錄(如果還沒建立的話),然後編輯 /etc/portage/package.use

Sometimes you want to use a USE configuration & #xff0c for a set of (or a set of) packages, but do not want to affect the system as a whole. To reach this & #xff0c; you need to create /etc/portage & #xff0c; then edit .

例如說,你不想要整個系統都有 berkdb 支援,但是你想要 mysql 支援,你可以加入:

For example, xff0c; you don't want the whole system to have berkdb xff0c; but you want support xff0c; you can add xff1a;

原始碼?4: /etc/portage/package.use 範例

 
dev-db/mysql berkdb 

你當然可以明確關閉某個程式的 USE 設定。例如說,你不想要 PHP 支援 java

Of course you can make sure that closes a USE setting for a program . For example, #xff0c; you don't want PHP support #xff1a;

原始碼?5: /etc/portage/package.use 第二個範例

 
dev-php/php -java 

定義暫時性的變數

有時候您會想要定義暫時性的變數。或許只使用那麼一次。這樣一來您就可以不用編輯 /etc/make.conf 兩次(先設定,編譯完再復原)您可以直接將 USE 定義成環境變數。記得,當你重新安裝或升級這個程式(不管是只升級他或是升級全系統),你的改變會遺失!

Sometimes you want to define temporary variables. Maybe only once. So you don't have to edit twice & #xff08; set & #xff0c first; compile & #xff09; you can directly define the USE as an environmental variable. Remember #xff0c; when you re-enhance or upgrade the program (whether it is a promotion or an upgrade system) #xff0c; your change will be lost #xff01;

以下的範例,我們將暫時從 USE 設定移除 java 來安裝 mozilla。

The following example #xff0c; we will temporarily remove java from the USE settings to install mozilla.

原始碼?6: 使用 USE 為環境變數

# USE="-java" emerge mozilla

自動 USE 參數

某些套件安裝完成後,額外的 USE 參數如果你沒有明確關閉的話,會被自動啟動。要查看完整的提供 USE 參數的清單,查看 /etc/make.profile/use.defaults及他上層 profile 的 use.defaults

xff0c; extra USE parameters if you are not explicitly disabled; xff0c; will be automatically activated. To view the complete list of available USE parameters & #xff0c; see and his upper profile use.defaults #xff1a;

原始碼?7: 簡短版本的 /etc/make.profile/use.defaults

gnome           gnome-base/gnome
gtk             x11-libs/gtk+
qt              x11-libs/qt
kde             kde-base/kdebase
motif           x11-libs/openmotif

優先度

當然我們有著各個設定的優先度。您不會因為 java 因為較高的優先序而再使用而輸入 USE="-java"。USE 設定的優先度將按照以下的排列(從低到高):

Of course, we have advantages for each setting. You will not enter for the higher order of preference USE= "-java34; . The priority for the USE setting will be as xff08; from low to high xff09; xff1a;

  1. 放在 make.defaults 預設的 USE 設定
  2. use.defaults 承接的 USE 設定
  3. 使用者在 /etc/make.conf 定義的 USE 設定
  4. 使用者在 /etc/portage/package.use 定義的 USE 設定
  5. 以環境變數的方式定義的 USE 設定變數

要查看最後的 USE 設定,執行 emerge --info。這將會看到所有相關的變數(包括 USE 變數)和 Portage 需要使用到的內容。

To view the last USE settings & #xff0c; to execute emerge-info. This will see all the relevant variables & #xff08; including variable xff09; and Portage to use.

原始碼?8: 執行 emerge --info

# emerge --info

讓您的系統適應新的 USE 旗標

如果您有更改您的 USE 旗標,並且想將整個系統都套用新的設定,使用 emerge--newuse 參數。

If you have changed your USE flag & #xff0c; and you want to apply the entire system to the new settings & #xff0c; use the emerge parameter .

原始碼?9: 重新編譯您的系統

# emerge --update --deep --newuse world

接下來,執行 Portage 的 depclean 移除就系統上不需要的舊相依性套件。

Next #xff0c; ex-Portage depclean removes old dependencies that are not required on the system.

警告: 執行 emerge --depclean 是一件非常危險的動作,請小心執行。請仔細確認列出來的套件沒有包含著您鎖需要的套件。以下的範例我們將加入 -p 的參數來顯示出將要被移除的列表清單。

原始碼?10: 移除不需要的套件

# emerge -p --depclean

當 depclean 完成後,執行 revdep-rebuild 重新編譯動態連結到已移除套件共享函式庫的套件。revdep-rebuildgentoolkit 套件的一部分;不要忘了先安裝他。

When depclean completes & #xff0c; executable revdep-rebuild recomposes the dynamic links to the already removed package-sharing library. is part of the package gentoolkit; do not forget to install him first.

原始碼?11: 執行 revdep-rebuild

# revdep-rebuild

當這些都完成後,你的系統就正在使用新的 USE 設定了。

When all this is done xff0c; your system is using the new USE settings.

2.c. 套件相關 USE 設定

查看可用的 USE 設定

讓我們使用 mozilla 的範例:它聽取著什麼 USE 關鍵字?要查看,我們使用 emerge 加上 --pretend--verbose 參數:

Let's use the example of mozilla xff1a; it's listening to USE & #xff1f; to see #xff0c; we're using plus and argument #xff1a;

原始碼?12: 查看 USE 關鍵字

# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N    ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap 
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft 

除了emerge 以外還有別的軟體可以完成類似查詢的工作。事實上,我們有一個特別的套件叫做 equery。這是包含在 gentoolkit 的套件內。首先,安裝 gentoolkit

In addition to Emerge, there are other software to do similar inquiries. In fact, #xff0c; we have a special package called equery. This is contained in the package gentoolkit #xff1a;

原始碼?13: 安裝 gentoolkit

# emerge gentoolkit

現在執行 equery 然後使用參數查看某個套件的 USE 關鍵字。舉例來說 gnumeric 套件:

Run equery and use parameters to view the USE key for a given package. For example, gnumeric package #xff1a;

原始碼?14: 使用 equery 查看使用的 USE 關鍵字

# equery uses gnumeric
[ Colour Code : set unset ]
[ Legend      : (U) Col 1 - Current USE flags        ]
[             : (I) Col 2 - Installed With USE flags ]

 U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
 - - libgda  : Adds GNU Data Access (CORBA wrapper) support for gnumeric
 - - gnomedb : unknown
 + + python  : Adds support/bindings for the Python language
 + + bonobo  : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)

3. Portage 功能

3.a. Portage 功能

Portage 有一些而外的功能讓你的 Gentoo 使用經驗更加美好。這些功能中許多都是依賴特定軟體來加強效能,可靠性,安全...

Portage has some extra features that make your Gentoo experience better. Many of these functions rely on specific software to enhance efficiency #xff0c; reliability #xff0c; security...

你需要編輯 /etc/make.conf 包含各種功能關鍵字,以空白分隔的 FEATURES 變數來開啟或關閉特定 Portage 功能。在一些情況你也要安裝這個功能需要的額外套件。

You need to edit containing various functional keywords xff0c; empty-separated FEATURES to open or disable specific Portage functions. In some cases you also need to install the required coats for this function.

不是所有 Portage 支援的功能都列在這篇文件?請查閱 make.conf 手冊頁來取得完整的列表。

Not all Portage-supported functions are listed in this document xff1f; see make.conf for the full list.

原始碼?1: 查閱 make.conf 手冊頁

$ man make.conf

如果要找到預設啟動那些功能,執行 emerge --info 並在其中尋找 FEATURES 變數或用 grep:

If you want to find default & #xff0c; execute emerge-info and find FEATURES variables or use grep:

原始碼?2: 找出那些功能已經設定了

$ emerge --info | grep FEATURES

3.b. 分散編譯

使用 distcc

distcc 是一個讓您可以在多台,不一定同一類型的電腦經由網路分別編譯。 distcc 客戶端傳送給伺服器(執行 distccd)必要的資訊讓它可以幫客戶端編譯原始碼的一部份。這會幫您加快編譯時間。

is an information necessary to enable you to compose a part of the original code for a client, not necessarily the same type of computer. client sends to the server (executing distccd). This will help you speed up the compilation time.

您可以在 Gentoo Distcc 文件中找到關於 distcc 更詳細的資訊(包括他如何在 Gentoo 上工作)。

You can find more detailed information (including how he works on Gentoo) in Gento Distcc.

安裝 distcc

Diskcc 提供一個圖形化的監視程式讓您監視您的電腦送出去的編譯工作。如果您使用 Gnome 的話,在 USE 設定中加入 'gnome'。然而,如果您不是使用 Gnome 但您想使用它的話,您應該在 USE 設定中加入 'gtk'。

Diskcc provides a graphical surveillance program that allows you to monitor the compilation work that your computer sends out. If you use Gnome & #xff0c; insert & #39;gnome#39; in the USE settings. However & #xff0c; if you do not use Gnome but you want to use it & #xff0c; you should add & #39;gtk#39;

原始碼?3: 安裝 distcc

# emerge distcc

啟動 Portage 的支援

/etc/make.conf 之中的 FEATURES 變數加入 distcc。然後依你的喜好編輯 MAKEOPTS 變數。一個常見的法則是填入 "-jX",這裡的 X 是執行 distccd 的總 CPU 數加一(包括目前的電腦),但是填入其他數字你可能會有較好的結果。

The FEATURS variable in is added to . Then edit the MAKEOPTS variable according to your preferences. A common approach is to fill in & #34;-jX" & #xff0c; here X is the total CPU plus one (including the current computer) #xff0c; but you may have better results by filling in other numbers.

現在執行 distcc-config 然後輸入可使用的 distcc 伺服器。舉一個簡單的例子,我們假設可用的 DistCC 伺服器是 192.168.1.102(目前的電腦),192.168.1.103 和 192.168.1.104(兩台遠端電腦):

and then enter the available distcc server. & #xff0c, a simple example; we assume that the DistCC server is 192.168.1.102 (current computer) & #xff0c; 192.168.1.103 and 192168.1.104 (two remote computers) #xff1a;

原始碼?4: 設定 distcc 使用三台可用的 distcc 伺服器

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

當然,不要忘記啟動 distccd 伺服器程式:

xff0c; do not forget to start distccd server xff1a;

原始碼?5: 啟動 distcc 伺服器程式

# rc-update add distccd default
# /etc/init.d/distccd start

3.c. 編譯快取

關於 ccache

ccache 是一個快速的編譯器快取。當您編譯程式時,他會立即快取結果,因此當您重新編譯時,編譯的時間減少相當多。在一般的狀況可以加快 5 到 10 倍的編譯時間。

cccache is a quick compiler cache. When you compile a program & #xff0c; he immediately picks up the results & #xff0c; so when you recompose & #xff0c; the time to compile is considerably reduced. The normal situation can be accelerated by 5 to 10 times the time to compile.

如果您對 ccache 的詳細內容有興趣,請瀏覽 ccache 首頁

If you are interested in the details of ccache & #xff0c; go to cccache homepage.

安裝 ccache

要安裝 ccache 的話,執行 emerge ccache

If you want to install cccache xff0c; execute

原始碼?6: 安裝 ccache

# emerge ccache

啟動 Portage 支援

開啟 /etc/make.conf 然後在 FEATURES 變數中加入 ccache。接著新增一個叫 CCACHE_SIZE 的變數並設成 "2G":

Open and add ccache to the FEATURES variable. Then add a variable called CCACHE_SIZE and set it as & #34; 2G" & #xff1a;

原始碼?7: 編輯 /etc/make.conf 中的 CCACHE_SIZE

CCACHE_SIZE="2G"

要檢查 ccache 是否在工作,您可以要求 ccache 提供你他的狀態。因為 Portage 使用不同的 ccache 家目錄,你也要設定 CCACHE_DIR 變數。

To check if is working xff0c; you can ask ccache to provide his status. Because Portage uses a different ccache home directory xff0c; you also set the variable .

原始碼?8: 查看 ccache 狀態

# CCACHE_DIR="/var/tmp/ccache" ccache -s

Portage 預設的家目錄是 /var/tmp/ccache。如果你想要改變到別的目錄,你可以設定 /etc/make.conf 之中的 CCACHE_DIR 變數。

The default home directory for Portage is /var/tmp/ccache. If you want to change to another directory xff0c; you can set the variable .

然而,如果你執行 ccache,他預設會用 ${HOME}/.ccache,因此你需要設定 CCACHE_DIR 變數,來取得 Portage 的 ccache 統計。

However, xff0c; if you run ccache, he predicts using , therefore, you need to set the variance xff0c; to obtain the cache of Portage.

在非 Portage 的 C 程式編譯時使用 ccache

如果你想要在非 Portage 的 C 程式編譯時使用 ccache,在你的 PATH 變數中加入 /usr/lib/ccache/bin(在 /usr/bin 之前)。這可以藉由編輯 /etc/env.d/00basic 來完成,這是第一個定義 PATH 變數的檔案:

If you want to use ccache, for non-Portage C programming, insert (before ). This can be done by editing ; this is the first file defining #xff1a;

原始碼?9: 編輯 /etc/env.d/00basic

 
PATH="/usr/lib/ccache/bin:/opt/bin"

3.d. 已編譯程式套件支援

建立預編程式套件

Portage 支援安裝預先編譯好的套件。雖然 Gentoo 本身不提供預編的套件(除了 GRP 以外),Portage 可以完全明白預編套件。

Portage supports the installation of pre-compiled packages. Although Gentoo does not itself provide pre-compiled packages (except GRP) & #xff0c; Portage fully understands the pre-compiled packages.

如果套件已經安裝好的話,你可以使用 quickpkg 來建立預編套件,否則使用 emerge 指令加上 --buildpkg--buildpkgonly 參數。

If the package is installed & #xff0c; if the package is installed, you can create the preset & #xff0c using quickpkg; or if the command Emerge is added to the command or -- buildpkonly.

如果你想要 Portage 把每一個你安裝的套件都建立預編套件,在 FEATURES 變數中加入 buildpkg

If you want Portage to create a preset for every package you install & #xff0c; add buldpkg to the FEATURRES variable.

可以從 catalyst 得到建立預編套件更多的支援。請閱讀 Catalyst 參考手冊Catalyst Howto 取得更多資訊。

More support for the creation of the preset package can be obtained from . Read Catalyst references and CatalyHowto for more information.

安裝預編套件

雖然 Gentoo 並不提供,你可以建立一個檔案庫來存放預編套件。如果你想要使用這個檔案庫,你需要設定 PORTAGE_BINHOST 變數讓 Portage 知道他。例如說,如果預編套件在 ftp://buildhost/gentoo :

Although Gentoo does not provide xff0c; you can build a file library to store the presets. If you want to use this file library xff0c; you need to configure the PORTAGE_BINHOST variable to let Portage know him. For example, xff0c; if the preset is at ftp://buldhost/gentoo & #xff1a;

原始碼?10: 設定 /etc/make.conf 中的 PORTAGE_BINHOST

PORTAGE_BINHOST="ftp://buildhost/gentoo"

當你想要安裝預編套件時,在 emerge 指令的 --usepkg 參數旁加上 --getbinpkg。前面的參數要求 emerge 在下載及編譯原始碼前先嘗試安裝預編套件,而後者告訴 emerge 從先前定義的伺服器下載預編套件。

When you want to install the preset & #xff0c; add parameter to to the emerge command. The preceding parameter requires emerge to try to install the preset package xff0c before downloading and compiling the source code; and then tell emerge to download the preset package from a previously defined server.

例如說,用預編套件安裝 gnumeric

e.g. xff0c; installation of gnumeric: with presets;

原始碼?11: 安裝 gnumeric 預編套件

# emerge --usepkg --getbinpkg gnumeric

關於 emerge 的預編套件選項可以在 emerge 手冊頁找到:

A preview package option for emerge can be found on the emerge manual page & #xff1a;

原始碼?12: 閱讀 emerge 手冊頁

$ man emerge

4. 起始程序(Initscripts)

4.a. 執行階段(Runlevels)

啟用您的系統

當您開啟您的系統,您將會看到很多文字跳過。如果您注意一點,您將會發現那些文字都是一樣的。這些動作叫做固定式的 開機序列

When you open your system & #xff0c; you will see a lot of text skipping. If you notice a little bit & #xff0c; you will find that the text is the same. These actions are called fixed .

首先,您的開機程式將會載入您所定義到設定檔內的核心映像檔,並且將他放到記憶體內。這是為了要告訴 CPU 該執行核心。當核心載入完畢開始執行後,它將會起始核心相關的架構和程序然後開始 init 的程序。

First & #xff0c; your opener will load the core image & #xff0c; and put him in your memory. This is to tell the CPU that the core should run. & #xff0c after the core is loaded to start running; it will start init programs related to the core.

這個步驟是為了確保所有的檔案系統(被定義在 /etc/fstab)有被載入並且可以使用。然後將執行一些放在 /etc/init.d 的給個程序,將啟用所有您打算開啟的服務。

This step is intended to ensure that all file systems & #xff08; defined as ) loaded and usable. Some of the programs that you intend to open will then be implemented #xff0c; all the services that you intend to open will be enabled.

最後,當所有的程序都執行後,init 將會啟用終端(在大多的例子裡,只是幾個藏在 Alt-F1 下的虛擬終端,Alt-F2,等等。)包含著一個特別的程序叫做 agetty。然後這個程序將會使用 login 讓您可以登入到這些終端內。

Finally xff0c; when all programs are implemented xff0c; init will be activated xff08; in most cases xff0c; only a few hidden in the virtual end of Alt-F1; pagety. This program will then use login to enable you to reach these ends.

Init 程序

現在 init 不只是執行 /etc/init.d 裡面的程序。更多的是,他還會依照 /etc/runlevels 來選擇要執行的程序。

Now does not just run the program /etc/init.d. More often & #xff0c; he also selects the program to be executed according to .

首先,init 將執行所有 /etc/runlevels/boot 內的連接,這些連接將會連到 /etc/init.d 裡面的程序。大部份來說,這些將會按照字母排列分別起始,但是有些會因為相依性的關係而先執行其他的程序。

First xff0c; init will run all connections xff0c in ; these connections will be connected to . For the most part xff0c; these will start in alphabetical order xff0c; but some will follow other procedures because of their dependencies.

/etc/runlevels/boot 內的程序都被執行後,init 將繼續執行 /etc/runlevels/default 內的連接。在一次,這些將會按照字母排列分別起始,但是有些會因為相依性的關係而先執行其他的程序。

When the programs in are executed xff0c; init will continue to run links in . At one xff0c; these will start with a letter-based split xff0c; some will follow other procedures because of their sex.

Init 是如何執行的

當然 init 不能自己決定所有的選擇。他需要一個設定檔來告訴要有那些動作。這個設定檔為 /etc/inittab

Of course init does not determine all options. He needs a profile to tell what actions are required. This profile is .

如果您記得剛剛解釋過的開機序列,您將會記得 init 的第一個動作就是掛載所有的檔案系統。這將會按照以下的方式定義在 /etc/inittab

If you remember the initial sequence that you have just explained xff0c; you will remember that the first action init is to load all file systems. This will be defined in : in the following manner;

原始碼?1: /etc/inittab 的系統起始

si::sysinit:/sbin/rc sysinit

這行將告訴 init 一定要執行 /sbin/rc sysinit來起始系統。 /sbin/rc 的程序將掌管起始的動作,您也可以說 init 的工作其實不多 -- 它只是指派起始系統的工作給另外一個程序。

This line will tell init that /sbin/rc sysinit to start the system. /sbin/rc the program will manage the start-up action #xff0c; you can also say is not much -- it simply assigns the start-up system to another program.

第二,init 將執行 /etc/runlevels/boot 內所有的連接。將按照以下定義:

Second xff0c; init will execute all connections in . This will be defined as xff1a;

原始碼?2: 繼續系統起始

rc::bootwait:/sbin/rc boot

rc 程序再一次的執行相關工作。但是這是是 rcboot)將會去執行 /etc/runlevels 的相關目錄。

again. But this is a directory of rc & #ff08; boot&#ff09; will go to .

現在 init 將檢察他的設定檔然後查看他應該執行那個階段。要決定這個,它將會從 /etc/inittab 取以下這行:

Now will check his configuration file and see if he should run the . To decide this xff0c; it will take the following line from ;

原始碼?3: init預設(initdefault)

id:3:initdefault:

在這個例子(大多數的 Gentoo 使用者也會使用),將會從第三個執行階段開始。使用這個資訊,init 將會從 執行階段 3 開始:

In this example xff08; most Gentoo users also use xff09; xff0c; will start with the third . Using this information xff0c; will start with the xff1a;

原始碼?4: 定義執行階段

l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot

這行將定義第三階段,然後執行 rc 程序來選擇要啟用的服務(現在則是更改為 default)。這個 rc 後面的參數將會合 /etc/runlevels 內的子目錄一樣。

This line will define the third phase & #xff0c; then rc to select the service to be used & #xff08; it will now be changed to &#ff09; this rc will combine the parameters in the subdirectories .

rc 完成的時候,init 將會決定應該要啟用那些虛擬終端和在各終端應該執行什麼指令:

When finishes > #xff0c; init will decide what instructions should be activated for the virtual end and for the execution of #xff1a at the end;

原始碼?5: 虛擬終端定義

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

什麼是執行階段(runlevel)?

您已經知道了 init 如何使用號碼來決定該啟用那個執行階段。一個 執行階段 將會代表著您的系統將執行那些程序(執行階段程序或是 起始程序(initscripts))

You already know how init will use a number to determine how to activate the stage. A on behalf of your system that will run the programs #xff08; run the session program or .

在 Gentoo 內共有定義七個執行階段:三個內部執行階段,和四個使用者定義的執行階段。內部的執行階段叫做 sysinitshoutdownreboot 就和他們的名字一樣:

In Gento, there are seven implementation stages & #xff1a; three internal implementation stages & #xff0c; and four user-defined implementation stages. The internal implementation phase is called sysinitsoutdown and reboot, which is the same name as their #xff1a;

使用者定義的執行階段包含著 /etc/runlevels 的自目錄: bootdefaultnonetworksingleboot 的執行階段將起始包含其他所有系統相關的服務。剩下的三個執行階段則是依照不同的服務而類別:default 適用於日常運作所需,nonetwork 適用於沒有網路連線的需求,和 single 則是在您需要整理系統時所用。

The user-defined implementation section contains /etc/runlives & #xff1a; boot, & #xff0c; single > > >bot starts with all other system-related services. The remaining three executive sections are different according to different services <#path > ; single > ; and you are not required to use

.

使用 Init Scripts

rc 的程序叫做 init scripts。每個在 /etc/init.d 的程序都可以使用 startstoprestartpausezapstatusineediuseneedsmeusesme 或是 broken 為參數。

The program is called . Each program in can use ; ; ; ; spanspanspanspan>; ; /spans>; ; spans>; s>; ; ; ; /spans>; [s>[s>[s/s>[s][s][s][s][s]s][s][s][s][s][s]s][s][s][s][s]s][s]s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s][s]

要開始,停止,或是重新啟動一個服務(和所有相依的服務),您應該使用 startstoprestart

To start xff0c; to stop xff0c; or to restart a service xff08; and all dependent services xff09; xff0c; you should use start & #xff0c; and restat

原始碼?6: 啟用 Postfix

# /etc/init.d/postfix start

注意: 只有 指定 的服務會被停止或是重開。其他相依的程式(那些使用這個服務但是不需要他的)將不會被影響到。

如果您要停止一個服務,但是不是依賴著它的其他服務,您可以使用 pause

If you want to stop a service xff0c; but not dependent on it xff0c; you can use pause

原始碼?7: 停止 Postfix 但是繼續執行其他相依的服務

# /etc/init.d/postfix pause

如果您要查看某個服務的狀態(啟用,停止,暫停﹍)您可以使用 status

If you want to see the status of a service xff08; xff0c enabled; xff0c stopped; xff09 suspended; you can use

原始碼?8: 關於 postfix 的狀態

# /etc/init.d/postfix status

如果狀態告訴您這個服務正在執行,但是您知道這是錯的,那您將可以使用 zap 將狀態重設為 "停止":

If the status tells you this service is running xff0c; but you know it's wrong xff0c; then you can reset the status to 34; stop 34; xff1a using zap;

原始碼?9: 重設 postfix 的狀態

# /etc/init.d/postfix zap

如果要查看某個服務的相依性有那些,您可以使用 iuse 或是 ineed。您可以使用 ineed 來觀看服務的相關功能。iuse 則是查看服務是否有被其他服務依賴著。

If you want to see the dependencies of a service, xff0c; you can use use or ineed. You can use to see if the service is dependent on other services. use

原始碼?10: 查詢 Postfix 依賴的服務

# /etc/init.d/postfix ineed

類似的,您可以查詢那些服務需要那些服務(needsme)或是(usesme):

#xff0c; you can query those services that require xff08; needsme) xff08; ) xff1a;

原始碼?11: 需要用到 Postfix 的服務

# /etc/init.d/postfix needsme

最後您可以查看依賴著某個服務但是壞損的其他服務:

Finally, you can look at other services that depend on one service but are damaged #xff1a;

原始碼?12: 查詢 Postifx 需要但是損毀的相依性

# /etc/init.d/postfix broken

4.b. 使用 rc-update

什麼是 rc-update?

Gentoo 的 init 系統使用的是相依性列表來決定那個服務需要先啟用。這是一個複雜的工作,所以我們不會讓我們的使用者手動完成這項工作。所以我們建立了相關的執行階段工具和 init 工具方便管理。

Gentoo's init system uses a dependencies list to determine that the service needs to be enabled first. This is a complicated task & #xff0c; so we will not allow our users to do it manually. So we have built up a related implementation session tool and an init tool that can be easily managed.

使用 rc-update,您可以從執行階段新增或是移除 init 程序。rc-update 的工具將自動讓 depscan.sh 程序重新建立相依性資料。

Use rc-update, you can add or remove an init program from an active session. The rc-update tool will automatically allow to recreate dependencies.

新增或是移除服務

您已經在安裝 Gentoo 時將 init 程序加入過 "default" 的執行階段了。當時您應該對 "default" 沒有任何了解,但是您現在應該知道了它的意義。rc-update 程序需要第二個參數來告訴它要執行的動作:adddel 或是 show

You have added the init program to the & #34;default& #34; when you installed Gentoo. You should have known & #34;default" & #xff0c; but you should have known what it meant by now. rc-update requires a second parameter to tell it the actions it is going to do :add and #xff0c; or .

要增加或是移除一個 init 程序,只需要在 rc-update 後面放入 add 或是 del 的參數,然後接著就是要加入的 init 程序的名字。舉例來說:

To add or remove an init program & #xff0c; only need to insert after rc-update add or ; then add the name of the init program.

原始碼?13: 執行階段移除 Postfix

# rc-update del postfix default

rc-update show 的指令將會0按照執行順序顯示出所有可能的 init 程序清單:

rc-update show commands will display all possible init list #xff1a in the order of execution;

原始碼?14: 顯示 init 程序資料

# rc-update show

4.c. 設定服務

為什麼需要多餘的設定?

Init 程序可以是很複雜的。所以直接編輯 init 程序會讓使用者感到困難。但是要可以正確的設定這些服務是極為重要的。舉例來說,您或許會想在啟動服務時加入某個參數。

The Init program can be complicated. Direct editing the init program will make it difficult for users. But it is important to be able to set the service correctly. & #xff0c; you might want to add a parameter to the startup service.

第二個原因是為了要讓 init 程序可以更新原始設定檔以外的設定,而不會直接改到重要的設定檔。

The second reason is to allow the init program to update settings other than the original profile & #xff0c; instead of directly changing to an important profile file.

/etc/conf.d 目錄

Gentoo 提供一個簡單的方法設定相關服務:每個 init 程序都有一個可以設定的設定檔放在 /etc/conf.d舉例來說, apache2 的 init 程序(叫做 /etc/init.d/apache2)的設定檔會放在 /etc/conf.d/apache2,這樣可以在啟動 Apache 2 伺服器時加數您需要的參數:

Gentoo provides a simple way to configure related services & #xff1a; each init program has a profile that can be configured in for example , apache2 init program ( known as ) the configuration file will be in #xff0c; this will add the reference you need to the Apache 2 server #xff1a;

原始碼?15: /etc/conf.d/apache2 的變數定義

APACHE2_OPTS="-D PHP4"

這種設定檔包含的變數(就和 /etc/make.conf 類似),是為了要讓服務的設定更加簡易。它也以註解的方式提供著一些相關的資料和變數用法。

This configuration file contains variables & #xff08; and , similar to #xff09; & #xff0c; to make service settings easier. It also provides relevant data and variables for comment.

4.d. 編寫 Init 程序

我需要嗎?

不。Gentoo 提供了這些 init 程序,所以您不需要自己編寫一個。但是,如果您安裝了非 Portage 提供的服務,那麼您就需要編寫一個類似 init 的程序。

No. Gentoo provides these init programs & #xff0c; so you do not need to compose one yourself. But & #xff0c; if you have installed a non-Portage service & #xff0c; then you need to compose a program similar to init.

如果不是針對 Gentoo 所設計的程序,請不要使用:Gentoo 的 init 程序和其他版本的 init 程序不相容!

If not designed for Gentoo & #xff0c; do not use xff1a; Gentoo's init program and other versions of init xff01;

規劃

以下為一個 init 程序的規劃。

Below is a plan for an init procedure.

原始碼?16: Basic layout of an init script

#!/sbin/runscript

depend() {
  (相依性資訊)
}

start() {
  (啟動服務的相關指令)
}

stop() {
  (停止服務的相關指令)
}

restart() {
  (重新啟動服務的相關指令)
}

任何 init 程序 都需要 start() 功能的定義。其他的則是非必需。

Any program init start(). The rest is not necessary.

相依性

您總共有兩種相依性可以定義:useneed。就如我們之前提到的, need 的相依性比 use 來的嚴厲。然後使用 virtual 來選擇所依賴的相依性。

There are two kinds of dependencies that you can define as xff1a; use and . As we mentioned earlier, xff0c; . Then use virtual to select the dependencies.

virtual 是一個提供服務的相依性,但是並不是完全由這個服務提供。您的 init 程序可以依賴著系統記錄器,但是我們提供著許多系統記錄器(metalogd,syslog-ng, sysklogd,﹍)當您無法 need 所有的(執行全部的系統記錄器並不合理)我們將確定這些服務可以 提供 一個虛擬相依性。

virtual is a dependencies of service provision xff0c; but it is not entirely provided by this service. Your init program can rely on the system recorder xff0c; but we have many system recorders xff08; metalogd, syslog-ng&#ff0c; sysklogd,xff09; when you cannot need all xff08; running all systems recorders is not reasonable xff09; we will determine that these services can provide a virtual dependencies .

現在讓我們來看看一個 postfix 服務所依賴的相依性。

Now let's look at the dependencies of a postfix service.

原始碼?17: Postfix 的相依性

depend() {
  need net
  use logger dns
  provide mta
}

如擬可見,postfix:

See, for example, xff0c;postfix:

  • 需要所有的(虛擬)net 相依性 (是由 /etc/init.d/net.eth0 所提供)
  • 需要使用(虛擬) logger 相依性(是由 /etc/init.d/syslog-ng 提供)
  • 需要使用(虛擬) dns 相依性(事由 /etc/init.d/named 提供)
  • 提供(虛擬) mta 相依性(常用的郵件伺服器所需)

控制順序

在某些情況下您不需要一個服務,如果在系統可以提供的環境下(沒有相依的問題),但是您想要在這個服務之前 befre(開始) (或是 after(之後) 使用另外一個服務 然後 放到同一個執行階段(只有同執行階段的服務)。您可以使用 before 或是 after 設定來完成這些設定。

In some cases, you do not need a service xff0c; if xff08 is available in the system; there are no dependent problems xff09; xff0c; but you want to use another service before this service

我們將查看 Portmap 的設定為範例:

We'll look at the Portmap settings as an example of #xff1a;

原始碼?18: Portmap 服務的 depend() 功能

depend() {
  need net
  before inetd
  before xinetd
}

您也可以使用 "*" 來選擇同一個執行階段內所有的服務,但是我們並不建議。

You can also use & #34;*& #34; to select all the services in the same stage & #xff0c; but we do not recommend.

原始碼?19: 設定成為第一個同執行階段的 init 程序

depend() {
  before *
}

符合標準的功能

depend() 之後,您將需要定義 start() 的功能。這個將包含著所有相關啟動服務的指令。我們建議您使用 ebegineend 功能來通知使用者正在發生什麼事:

xff0c; you will need to define start(). This will contain all relevant instructions to start the service. We suggest that you use and

原始碼?20: start() 功能範例

start() {
  ebegin "Starting my_service"
  start-stop-daemon --start --quiet --exec /path/to/my_service
  eend $?
}

如果您需要更多的 start() 功能的範例,請查看您系統中放在 /etc/init.d 目錄裡面的 init 程序。關於 start-stop-daemon,我們有提供著一個很棒的說明頁讓您查閱:

If you need more examples of ; see the init program in your system in . About start-stop-daemon, we have a wonderful help page for you to look at #xff1a;

原始碼?21: 查詢更多關於start-stop-daemon 的說明頁

# man start-stop-daemon

其他您可以定義的功能為:stop()restart()。您不一定要定義這些功能!如果您使用 start-stop-daemon,我們 init 系統將會自動填入這些功能。

The other functions you can define are & #xff1a; stop() and restart(). You do not have to define these functions & #xff01; if you use start-stop-daemon, we init system will automatically fill them.

Gentoo 的 init script 語法是以 Bourne Again Shell (bash) 為基礎,所以你可以在你的 init script 中自由使用和 bash 相容的架構。

Gentoo's init script syntax is based on Bourne Again Shell (bash); so you can freely use and bash-compatible structures in your init script.

加入自訂選項

如果您想要讓您的 init 程序支援更多我們已經提供的選項,您應該將這些選項加入到 opts 變數,然後建立一個功能將此功能的命名為 opt 變數內所定義的。舉例來說,要提供一個 restartdely 的功能:

If you want your init program to support more of the options we have already provided & #xff0c; you should add these options to opts variable, then create a function to name this function as defined in the opt variable & #xff0c; for example, provide a function restartdely;

原始碼?22: 提供 restartdely 選項

opts="${opts} restartdelay"

restartdelay() {
  stop
  sleep 3    # 等待三秒才開始
  start
}

系統設定變數

您不需要任何動作來提供一個 /etc/conf.d 的設定檔:如果您的 init 程序執行了,以下將會自動的載入(例:可用的變數):

You do not need any action to provide a configuration file for : if your init program executes xff0c; the following will automatically load xff08; Example #xff1a; Available Variablesxff09;xff1a;

  • /etc/conf.d/<您的 init 程序>
  • /etc/conf.d/basic
  • /etc/rc.conf

另外,如果您的 init 程序需要一個虛擬的相依性(如 net),那麼相關的檔案將會也會被載入(如 /etc/conf.d/net)。

Also xff0c; if your init program requires a virtual dependencies xff08; e. g. ) xff0c; then the associated files will also be loaded xff08; e.g.

4.e. 更改執行階段(RunLevel)的態度

誰會受益?

很多使用手提電腦的使用者將會明白這個狀況:在家裡您需要啟動 net.eth0,在外面因為沒有網路,所以您不想啟動 net.eth0。因此您可以依照您的需求而改變 Gentoo 的執行階段。

Many users of laptops will understand this situation xff1a; you need to start , outside because there is no network xff0c; you do not want to start . You can change the Gentoo's running section accordingly.

舉例來說,您可以建立第二個 "default" 執行階段來讓您執行其他的起始程序(Init Scripts)。然後在開機時選擇使用預設的執行階段。

& #xff0c; you can create a second & #34; default & #34; run stages to run other start-up programs & #xff08;InitScripts). Then choose to use the default running stages when opening.

使用 softlevel

首先,建立第二個 "default" 執行階段。我們將建立 offline 執行階段為這次的範例:

First & #xff0c; Create a second & #34;default #34; Run Session. We will create as an example of this & #xff1a;

原始碼?23: 建立一個執行階段目錄

# mkdir /etc/runlevels/offline

然後加入相關的起始程序到剛建立完成的目錄內。舉例來說,如果除了 net.eth0 以外,您想要將其他 default 執行階段的內容都複製到新的執行階段:

& #xff0c; if & #xff0c except for ; if you want to copy the content of the other to a new executive phase xff1a;

原始碼?24: 加入相關起始程序

(把所有預設執行階段的服務複製到 offline 執行階段)
# cd /etc/runlevels/default
# for service in *; do rc-update add $service offline; done
(將不需要的服務從 offline 執行階段移除)
# rc-update del net.eth0 offline
(顯示 offline 執行階段啟動的服務)
# rc-update show offline
(部分的輸出)
acpid | offline 
domainname | offline 
local | offline 
net.eth0 | 														   

現在編輯您的開機程式設定檔然後加入一個新的 offline 執行階段。舉例來說,在 /boot/grub/grub.conf

Now edit your startup configuration file and add a new running session. , at

原始碼?25: 加入 offline 執行階段

title Gentoo Linux Offline Usage
  root (hd0,0)
  kernel hd(0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline

噹啷!完成了。當您重新啟動系統然後選擇剛加入的選項, offline 將會被執行而不是本來的 default

xff01; complete. When you restart the system and then select the option that you have just joined xff0c; offline will be executed instead of the original .

使用 bootlevel

使用 bootlevelsoftlevel 的方法完全類似。唯一不一樣的就是您需要定義另外一個 "boot" 執行階段而不是第二個 "default" 執行階段。

The only difference is that you need to define another & #34; Boot& 34; run a second & #34; default #34; run a further #34.

5. 環境變數

5.a. 系統變數?

這是什麼

系統變數是一個有名稱的物件,包含一個或多個程式要用的資訊。許多使用者(特別是 Linux 新手)覺得這有一些古怪而且難以管理。這想法有一些錯誤:使用者可以用系統變數輕鬆的改變一個或多個程式設定。

The system variable is a named object & #xff0c; contains information for one or more programs. Many users (especially Linux rookies) find it odd and difficult to manage. There are some errors in the idea & #xff1a; users can easily change one or more program settings with system variables.

重要的範例

下面的表格顯示許多 Linux 使用的變數以及它們的用途。範例在表格後面展示。

The table below shows many of the variables that Linux uses and their uses. Examples are shown at the back of the table.

變數說明
PATH這個變數包含用冒號分隔的目錄列表,讓系統尋找可執行檔。如果您輸入一個可執行檔 (例如 lsrc-updateemerge)但是這個檔案不在列表中的 目錄,您的系統不會執行它(除非您輸入完整的路徑,如 /bin/ls)。
ROOTPATH這個變數和 PATH 有相同功能,但是這裡面包含的目錄是根使用者數入指令時 才會尋找。
LDPATH這個變數包含以冒號分隔的目錄列表,讓動態連結檔在裡面搜尋函式庫。
MANPATH這個變數包含以冒號分隔的目錄列表,讓 man 指令搜尋手冊頁。
INFODIR這個變數包含以冒號分隔的目錄列表,讓 info 搜尋資訊頁。
PAGER這個變數包含顯示檔案內容的程式路徑(例如 lessmore)。
EDITOR這個變數包含編輯的程式路徑(例如 nanovi)。
KDEDIRS這個變數包含以冒號分隔的目錄列表,設定 KDE 的主要路徑。
CLASSPATH這個變數包含以冒號分隔的目錄列表,設定 Java 程式的路徑。
CONFIG_PROTECT這個變數包含以空白分隔的目錄列表,這些目錄在 Portage 更新時需要被保護。
CONFIG_PROTECT_MASK這個變數包含以空白分隔的目錄列表,這些目錄更新 Portage 時不要被保護。

底下是所有的變數的設定範例:

Below are the settings for all variables #xff1a;

原始碼?1: Example definitions

PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf /
                /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ /
                /usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf

5.b. 定義全域變數

/etc/env.d 目錄

為了要集中管理這些變數的設定,Gentoo 使用 /etc/env.d 目錄。在目錄中您會發現許多檔案,例如 00basic05gcc 等。這裡面包含檔案名稱中所提到的程式需要用的變數。

In order to centralize the settings for these variables & #xff0c; Gento uses directories. Many files & #xff0c; for example 00basic, 05gcc. This contains the variables to be used for the programs mentioned in the filename.

例如,當您安裝 gcc 後,ebulid 會建立一個叫做 05gcc 的檔案,包含下面的變數設定:

& #xff0c; when you install gcc

原始碼?2: /etc/env.d/05gcc

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"

其他的 Linux 套件會告訴您在 /etc/profile 或其他地方新增這些變數。 Gentoo 則讓您很容易(對 Portage 也是)去管理這些變數而不用注意其他設定系統變數的檔案。

Other Linux packages will tell you to add these variables at /etc/ profile or elsewhere. Gentoo will make it easy for you (and for Portage) to manage these variables without paying attention to other configuration system variables.

舉例來說,當 gcc 更新了之後,/etc/env.d/05gcc 也會同時被更新而使用者不必做任何事。

For example, xff0c; when gcc updates xff0c; will also be updated at the same time without the user having to do anything.

這不僅對 Portage 有好處,對使用者也是。您或許偶爾會被要求設定一些系統變數。拿 http_proxy 做例子。您不用弄亂 /etc/profile,只要建立一個檔案( /etc/env.d/99local )然後在裡面輸入設定:

This is not only good for Portage & #xff0c; it is also good for users. You may sometimes be asked to set some system variables. Take . You do not have to mess , just create a file () and enter the settings #xff1a in it;

原始碼?3: /etc/env.d/99local

http_proxy="proxy.server.com:8080"

藉著將您自己的變數設定放到這個檔案中,您可以很快找到哪些變數是您自己設定的。

By placing your own variable settings in this file & #xff0c; you can quickly find which variables you set yourself.

env-update 指令稿

/etc/env.d 中的數個檔案同時定義了 PATH 變數。這並沒有錯:當您執行 env-update,他會把數個設定同時加到系統設定中,因此讓軟體套件(或使用者)加入他們自己的設定而不會干擾已經存在的設定。

Several files in define PATH variables. This is not wrong & #xff1a; when you run , he adds several settings to the system settings xff0c; so let software packages (or users) add to their own settings without interfering with existing settings.

env-update 指令稿將會以 /etc/env.d 中的檔案名稱以字母順序依序加入系統設定中。檔案名稱開頭必需要是兩位數的數字。

scripts will be added to the system configuration in alphabetical order by the filename in . The first name of the file must be a number of two digits.

原始碼?4: env-update 的新增順序

         00basic        99kde-env       99local
     +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"

變數的連結不一定會發生,只有這些變數有:KDEDIRSPATHCLASSPATHLDPATHMANPATHINFODIRINFOPATHROOTPATHCONFIG_PROTECTCONFIG_PROTECT_MASKPRELINK_PATHPRELINK_PATH_MASK。其他的變數使用最後定義的值 (依 /etc/env.d 中檔案的字典順序)。

The links between the variables do not necessarily occur xff0c; only those variables are xff1a;

當您執行 env-update,他會建立所有的系統變數然後寫入 /etc/profile.env 中(這檔案被 /etc/profile 使用)。他也會從 LDPATH 讀取資訊然後建立 /etc/ld.so.conf,之後,他會執行 ldconfig 重新建立動態連結使用的 /etc/ld.so.cache 檔案。

When you run , he will create all system variables and then write (this file is used by ). He will read from LDPATH and then recreate the use of and #xff0c; he will run ldconfig to re-establish the use of .

如果您希望 env-update 在您執行它後立刻作用,執行下面的指令來更新。自行安裝 Gentoo 的使用者可能會記得安裝過程中執行過:

If you want to function immediately after you execute it xff0c; to update the command below. Users who install Gentoo themselves may remember to install xff1a;

原始碼?5: 更新環境變數

# env-update && source /etc/profile

注意: 上面的指令只更新你目前終端機,啟動 consoles,以其他的孩子的環境變數。因此,如果你在 X11,你需要在你每一個新開啟的終端機輸入 source /etc/profile,或是重新啟動 X,讓所有終端機使用新的環境變數。如果你使用圖形化的登入管理員,你需要先變成 root,然後輸入 /etc/init.d/xdm restart。如果不是的話,你要先離開再進入 X,讓所有他生成的孩子都使用新的變數。

5.c. 定義局部變數

使用者自行設定

您或許不想要定義全域變數。例如您可能要加入 /home/my_user/bin 以及目前的工作目錄(你所在的目錄)到 PATH 變數中,但是您不想要其他使用者在他們的 PATH 也有這個設定。如果您想要定義區域變數,您可以加到 ~/.bashrc~/.bash_profile

You may not want to define a global variable. For example, you may want to add /home/my_user/bin and the current work directory (in your directory) to PATH xff0c; but you do not want other users to have this setup in their PATH. If you want to define a regional variable xff0c; you can add to or #xff1a;

原始碼?6: 在 ~/.bashrc 中額外增加局部 PATH 設定

(冒號後面什麼都不加代表目前的工作目錄)
PATH="${PATH}:/home/my_user/bin:"

當您重新登入後,您的 PATH 變數就會更新了。

The xff0c; your PATH variable will be updated when you re-board.

有期限的設定

有的時候需要更嚴格的定義。例如您可能需要從您剛剛建立的暫時目錄執行程式,但您不想輸入完整的路徑或是編輯 ~/.bashrc 只為了在這一小段時間使用。

Sometimes more stringent definitions are needed. For example, you may need to run & #xff0c from the temporary directory you have just created, but you do not want to enter the full path or edit

在這種情況下,您只要使用 export 指令設定 PATH 變數。只要您不登出, PATH 將會使用目前暫時的設定。

In this case xff0c; you will only use the export command to set the PATH variable. If you do not log out xff0c; PATH will use the current temporary settings.

原始碼?7: 設定有期限的變數

# export PATH="${PATH}:/home/my_user/tmp/usr/bin"

1. 檔案和資料夾

1.a. Portage 檔案

設定指令

Portage 含有一個預設的設定檔,放在 /etc/make.globals。當你打開來看,你將注意到所有的 Portage 設定配置是以變數的形式處理。後面將會敘述哪些變數 Portage 會聽從,還有他們各代表什麼意思。

Portage contains a default configuration file & #xff0c; in . When you open it to see , you will notice that all Portage configurations are handled in the form of variables. What variables Portage will follow & #xff0c; and what their representatives mean.

因為許多設定指令在不同的電腦架構之間並不相同,在你的 profile 中,Portage 也有一個預設的設定檔案:make.defaults。關於 profiles 和 /etc/make.profile 資料夾,待會我們將解釋更多。

Because many configuration commands are not the same between different computer structures & #xff0c; in your profile & #xff0c; Portage also has a default configuration file & #xff1a;

如果你打算變更設定變數,不要修改 /etc/make.globalsmake.defaults。請使用優先權較上面檔案高的 /etc/make.conf。你會發現有個 /etc/make.conf.example。正如他名字,這不過是個樣本 - Portage 並不會讀取這個檔案。

If you want to change the settings variable & #xff0c; don't change or . Please use a priority over . You will find a . Just like his name xff0c; this is a model - Portage and will not read the file.

你也可以用環境變數來定義 Portage 設定變數,但是我們並不建議這麼做。

You can also use the Environmental Variables to define the Portage Settings Variable #xff0c; but we don't recommend it.

Profile 特定資訊

我們與 /etc/make.profile 資料夾已有過邂逅。但這並不是一個真正的資料夾,只是一個連到 /usr/portage/profiles 其中之一的符號連結。你也可以在別的地方建立你自己的 profiles 然後指向他。該符號連結所指向的 profile,將是你的系統所依賴的。

We've had an encounter with the folder. But this is not a real folder xff0c; it's just a link to one of the symbols /usr/portage/profiles. You can also build your own profiles elsewhere and point to him. The symbol links to the profile, it will depend on your system.

一個 profile 包含著給 Portage 的特定電腦架構資訊,像是一個與該 profile 相符合系統的套件列表,一個不運作(或被 mask 掉)、給該 profile 用的套件列表等等。

A profile contains information about a specific computer set & #xff0c for Portage; like a list of packages that match the system & #xff0c; a non-operational & #xff08; or a list of packages that were dropped by mask & #xff09;, given to the profile etc.

使用者專用設定

當你想要推翻 Portage 中,與軟體安裝有關的特性,你可以開始編輯 /etc/portage 之中的檔案。強烈建議您使用 /etc/portage 中的檔案,千萬不要 以環境變數覆蓋該特性。

When you want to overturn & #xff0c in Portage; characteristics associated with software installation & #xff0c; you can start editing files in . that you use files in

你可以建立以下檔案在 /etc/portage 之中:

You can create the following files in :

  • package.mask 列出你不想讓 Portage 安裝的套件。
  • package.unmask 列出你想讓 Portage 能夠安裝的套件,即使 Gentoo 開發 者強烈建議你不要 emerge 他們。
  • package.keywords 列出你想讓 Portage 能夠安裝的套件,即使該套件(還) 沒有被認為適合你的系統或電腦架構。
  • package.use 列出你想給特定套件使用的 USE 旗標,而不必讓整個系統使 用該 USE 旗標。

可以在 Portage man page 找到更多關於 /etc/portage 資料夾的資訊,和可建立的檔案的完整列表。

More information about folders can be found in Portage man page & #xff0c; and a complete list of files that can be created.

原始碼?1: 閱讀 Portage man page

$ man portage

改變 Portage 檔案 & 資料夾路徑

之前提到的設定檔並不能存在別的地方 - Portage 總是會到這些地方找這些設定檔。然而因為各種目的:建立資料夾、存放原始碼、Portage 樹狀目錄路徑等等,Portage 還有許多其他的路徑設定。

The previously mentioned configuration files do not exist anywhere else - Portage will always look for them in these locations. However, there are many other path settings because of various purposes & #xff1a; creation of folders, storage source code, path to the Portage tree directory, etc. & #xff0c; Portage.

這些目的都有個眾所皆知的預設存放路徑,但可以透過編輯/etc/make.conf 來改成你自己的品味。這章剩下的部分將解釋哪些特定目的路定 Portage 會去使用,以及如何在你的檔案系統中變更他們。

These aims have a well-known default storage path xff0c; but they can be changed to your own taste by editing . The rest of this chapter will explain which specific destination Portage will use xff0c; and how to change them in your file system.

然而這份文件並不想被當做參考資料來使用。如果你需要百分之百範圍的解說,請查閱 Portage 和 make.conf 的 man page:

However, this document is not intended to be used as a reference. If you need a 100% explanation & #xff0c; look at Portage and man page:

原始碼?2: 閱讀 Portage 和 make.conf 的 man pages

$ man portage
$ man make.conf

1.b. 檔案儲存

Portage 樹狀目錄

Portage 樹狀目錄預設路徑是 /usr/portage。這是由 PORTDIR 變數所定義。當你把 Portage 樹狀目錄存在別的地方(透過變更此變數),不要忘記跟著改變 /etc/make.profile 符號連結。

The default path for the Portage tree directory is /usr/portage. This is defined by the PORTDIR variable. When you have the Portage tree directory elsewhere & #xff08; ) #xff0c; do not forget to change symbols.

如果你修改了 PORTDIR 變數,你可能也想改變下列的變數,因為他們不會注意到 PORTDIR 改變。這是由於 Portage 處理變數的方式:PKGDIR、DISTDIR、RPMDIR。

If you change the PORTDIR variable & #xff0c; you may also want to change the following variable & #xff0c; because they will not notice the PORTDIR change. This is because Portage handles the variable & #xff1a; PKGDIR, DISTDIR, RPMDIR.

預先編譯好的二進位檔

即使 Portage 預設不使用預先編譯好的二進位檔,但 Portage 對他們有廣泛的支援。當你要求 Portage 以預先編譯好套件工作時,他將到 /usr/portage/packages 尋找他們。這個路徑由 PKGDIR 變數定義。

Even if Portage defaults not to use pre-compiled binary files & #xff0c; however, Portage has broad support for them. When you ask Portage to pre-compil the package & #xff0c; he will search for them at . This path is defined by the PKGDIR variable.

原始碼

應用程式原始碼預設儲存在 /usr/portage/distfiles。這個路徑由 DISTDIR 變數定義。

The application source is stored defaultly in /usr/portage/distfiles. This path is defined by the DISTIR variable.

RPM 檔案

即使 Portage 不能使用 RPM 檔案,但可以使用 ebuild 指令產生他們。(請看 Ebuild 程式)。 Portage 預設存放 RPM 檔案的地方在 /usr/portage/rpm ,他是以 RPMDIR 變數來定義。

& #xff08; see #ff09; Portage pre-positioned RPM files at ; #xff0c; he is defined by RPDIR.

Portage 資料庫

Portage 在 /var/db/pkg 中儲存系統的狀態(那些套件已經安裝,什麼檔案屬於什麼套件,...)。不要手動修改裏面的檔案!這可能會破壞 Portage 對系統的了解。

Portage in /var/db/pkg (these packages have been installed xff0c; what files belong to xff0c;...) do not manually modify the files xff01; this could disrupt Portage's understanding of the system.

Portage 快取

Portage 的快取(包括修改時間,virtuals,相依資訊,...) 是儲存在 /var/cache/edb。這個位置只是快取而已:如果你當時並沒有在執行任何和 Portage 有關的程式,你可以把他清除。

Portage caches (including modification time & #xff0c; virtuals, by-line & #xff0c;...) are stored at /var/cache/edb. This position is just a cache xff1a; if you were not running any program related to Portage #xff0c; you can remove him.

1.c. 編譯軟體

Portage 暫存檔案

Portage 的暫存檔案預設上放在 /var/tmp。這定義於 PORTAGE_TMPDIR 變數。

Portage's temporary file is defaulted on . This is defined as the PORTAGE_TMPDIR variable.

如果你改變了 PORTAGE_TMPDIR 變數,你可能也想改變下列的變數,因為他們不會注意到 PORTAGE_TMPDIR 改變。這是由於 Portage 處理變數的方式:BUILD_PREFIX。

If you change the PORTAGE_TMPDIR variable xff0c; you may also want to change the following variable xff0c; because they will not notice PORTAGE_TMPDIR changes. This is the way Portage handles the variable xff1a; BUILD_PREFIX.

編譯資料夾

Portage 在 /var/tmp/portage 裡面建立專用的編譯資料夾,讓各個套件在裡面 emerge。這個路徑由 BUILD_PREFIX 變數定義。

Portage creates a special compiler folder & #xff0c; lets individual packages be in it. This path is defined by the BUILD_PREFIX variable.

Live 檔案系統路徑

預設上,Portage 安裝所有檔案到當前的檔案系統 (/),但你可以設定 ROOT 環境變數來改變他。當你想要建立一個新的編譯鏡像,這是很有用的。

Setup & #xff0c;Portage to install all files to the current file system () & #xff0c; but you can set ROOT environmental variables to change him. This is useful when you want to create a new compile image #xff0c.

1.d. 日誌特性

Ebuild 日誌

Portage 可以建立各個 ebuild 的日誌,但只有當 PORT_LOGDIR 變數已設置到一個 Portage 可寫入的路徑(portage 使用者)。預設上,這個變數並無設定。

Portage can create journals & #xff0c for each eBuild; but only when the PORT_LOGDIR variable has been set to a writeable path for Portage & #xff08;portage user & #xff09; on default & #xff0c; this variable is not set.

2. 經由變數來設定

2.a. Portage 設定

如前所述,我們可以透過許多變數來調整 Portage 的行為,這些變數定義在 /etc/make.conf。請參考 make.conf 的 man page,裡面有更詳細而完整的資訊。

As & #xff0c above; we can adjust Portage behaviors & #xff0c through many variables; these variables are defined in /etc/make.conf. See man page, there is more detailed and complete information.

原始碼?1: 參考 make.conf 的 man page

$ man make.conf

2.b. 編譯相關的選項

設定和編譯器的選項

當 Portage 編譯程式時,它會將下列變數的數值傳給編譯器和 configure script:

& #xff0c when the Portage compiles the program; it transmits the values of the following variables to the compiler and confuture compt:

  • CFLAGS 和 CXXFLAGS 設定編譯器編譯 C 和 C++ 程式所使用的 flags。
  • CHOST 設定程式的 configure script 所需要的主機資訊。
  • MAKEOPTS 會傳給 make 指令,通常用來設定編譯時平行處理的程度。更多關於 make 的參數可以在 make 的 man page 中找到。

USE 這個變數也會在 configure 和編譯階段用到,但我們已經在前面的章節講述的非常清楚了。

USE, this variable will also be used for & #xff0c in the context and in the compilation session; but we are already very clear in the previous chapter.

Merge 選項

Portage 在安裝(merge)某個軟體的新版本之後,會將舊版本相關的檔案從您的系統中移除。在進行這個動作之前,Portage 會給使用者 5 秒鐘的緩衝時間,這個數值是由變數 CLEAN_DELAY 來設定。

Portage removes an older version of the file from your system after installation of xff08;merge) a new version of a software. xff0c; Portage gives the user a 5-second buffer time xff0c; this value is set by the variable CLEAN_DELAY.

2.c. 設定檔的防護

Portage 保護的目錄位置

Portage 會將軟體新版本提供的檔案覆寫到系統上,唯一的例外是存放在protected 位置的檔案。這些受保護的位置定義在 CONFIG_PROTECT 變數下,通常是設定檔的目錄位置。要設定多個目錄位置時,在目錄間用空白(space)分開。

Portage will overwrite the files provided by the new version of the software to xff0c on the system; the only exception is the files stored at protected. These protected locations are defined as xff0c under the CONFIG_PROTECT variable; usually the directory location of the configuration file. When setting multiple folders xff0c; using blank spaces in the directory xff08; space& #xff09; separated.

當一個需要被寫入系統的檔案存放在受保護的位置時,Portage 會用別的檔名將檔案寫入系統,然後告知使用者該設定檔新版本的存在。

When a file that needs to be written to the system is stored in a protected location & #xff0c; Portage will write the file to the system & #xff0c by another filename; and the user will be informed of the existence of the new version of the profile.

您可以利用 emerge --info 取得目前 CONFIG_PROTECT 的設定:

You can use emerge-info to get the current configuration of the CONFIG_PROTECT #xff1a;

原始碼?2: 獲得 CONFIG_PROTECT 的設定

$ emerge --info | grep 'CONFIG_PROTECT='

更多關於 Portage 設定檔防護的資訊可以從 emerge 獲得:

More information about Portage profile protection can be obtained from emerge xff1a;

原始碼?3: 得到更多關於設定檔防護的資訊

$ emerge --help config

排除特定目錄

您可以使用 CONFIG_PROTECT_MASK 變數來 '不保護' 受保護位置下的特定子目錄。

You can use the & #39; Unprotected & #39; Specific subdirectories under protected positions using the CONFIG_PROTECT_MASK variable.

2.d. 下載選項

Server 位置

當您的系統上沒有所需要的資訊或是資料時,Portage 會從網路上抓取,而取得這些資訊和資料的 server 位置定義在下列變數內:

When you do not have the required information or data on your system, xff0c; Portage retrieves xff0c from the Internet; the server where you get this information and data is defined as xff1a in the following variables;

  • GENTOO_MIRRORS 設定存放有原始碼(distfiles)的 server 位置。
  • PORTAGE_BINHOST 設定可提供您系統預先編譯套件(prebuilt packages)的 server 位置。

第三個設定是用來更新 Portage tree 的 rsync server 位置:

The third setup is used to update the rsync server position for Portage Tree & #xff1a;

  • SYNC 設定 Portage 用來取得 Portage tree 的 server。

GENTOO_MIRRORS 和 SYNC 變數可以用 mirrorselect 程式來自動設定。您需要先 emerge mirrorselect。請參考 mirrorselect 的線上輔助來獲知更多資訊:

GENTOO_MIRRORS and SYNC variables can be used for mmirrorselect. You need to get more information from the online help of mrorselect <#xff1a>.

原始碼?4: 更多關於 mirrorselect 的資訊

# mirrorselect --help

如果您的環境需要您使用 proxy server,您可以用 HTTP_PROXY、FTP_PROXY 和 RSYNC_PROXY 這些變數來指定 proxy server。

If your environment requires you to use proxyserver, you can specify proxyserver with these variables: HTTP_PROXY, FTP_PROXY and RSYNC_PROXY.

抓取指令

當 Portage 需要抓取原始碼時,預設是使用 wget,您可以用 FETCHCOMMAND 變數來更改。

When Portage needs to fetch the source & #xff0c; default is to use wget, you can change it with the FETCHCOMMAND variable.

Portage 能夠繼續部份下載的原始碼,而不用重新抓取。預設用來執行這項工作的程式是 wget,但是您可以用 RESUMECOMMAND 變數來改變。

Portage is able to continue partial downloading of the source & #xff0c; instead of recapturing. The default program used to execute this task is , but you can change it by using the RESUMEMAND variable.

請確認您的 FETCHCOMMAND 和 RESUMECOMMAND 將原始碼存到正確的位置。在這些變數內,您應該分別用 /${URI} 和 /${DISTDIR} 來指到原始碼和 distfiles 的存放位置。

Please confirm that your FETCHCOMMAND and RESUMECOMMAND store the original code in the correct location. In these variables & #xff0c; you should distinguish between /${URI} and /${DISTDIR} to refer to the original code and the location of the folders.

您也可以針對不同的傳輸協定,設定所使用的指令,相關的變數有 FETCHCOMMAND_HTTP、FETCHCOMMAND_FTP、RESUMECOMMAND_HTTP、RESUMECOMMAND_FTP 等等。

You can also set instructions & #xff0c for different transfer protocols; set up instructions & #xff0c; the relevant variables are FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMEMAND_HTTP, RESUMEMAND_FTP, etc.

Rsync 設定

您無法更動 Portage 用來更新 Portage tree 所使用的 rsync 指令,但是您可以設定一些與 rsync 指令相關的變數:

You cannot change Portage to update the rsync command used by Portage Tree & #xff0c; but you can set some variables associated with rsync command & #xff1a;

  • RSYNC_EXCLUDEFROM 指到一個檔案,檔案內列舉 rsync 在更新過程中應該略過的套件和類別。
  • RSYNC_RETRIES 設定 rsync 嘗試連到 mirror 的次數,mirror 由 SYNC 變數指定。預設值是 3。
  • RSYNC_TIMEOUT 設定 rsync 連線因為閒置而被視為 timed-out 的時間(單位為秒)。這個變數預設值是 180,但是使用撥接的使用者可以設成 300 或更長。

2.e. Gentoo 設定

Branch 選擇

您可以用 ACCEPT_KEYWORDS 變數改變預選支系(default branch),預設值是您的系統架構下的 stable branch。更多關於 Gentoo branches 的資訊會在下一章說明。

You can use the ACCEPT_KEYWORDS variable to change the pre-selected division & #xff08;defaultbranch) & #xff0c; default value is the stable branch of your system architecture. More information about Gentoobranches will be found in the next chapter.

Portage Features

您可以用 FEATURES 變數來啟用某個 Portage feature。Portage Features 在前面的章節,如 Portage Features,已經討論過。

You can use the FEATURES variable to enable a Portage Feature & #xff0c; for example Portage Features #xff0c; already discussed.

2.f. Portage 行為

資源管理

透過 PORTAGE_NICENESS 變數,您可以增加或降低 Portage 執行時的 nice 值。PORTAGE_NICENESS 所設定的數值會被 加到 到目前的 nice 值上。

Through PORTAGE_NICENESS variable & #xff0c; you can increase or reduce the price of Portage when running. The value set by PORTAGE_NICENESS will be added by to the current nice value.

更多關於 nice 值的資訊,請參考 nice 的 man page:

More information about nice & #xff0c; refer to nice man page #xff1a;

原始碼?5: 更多關於 nice 的資訊

$ man nice

輸出行為

NOCOLOR,預設為 "false",設定 Portage 是否該取消彩色輸出。

NOCOLOR, default & #34; false" & #xff0c; setting whether Portage should cancel colour output.

3. 混用不同分支的軟體

3.a. 選擇一個分支

穩定分支

變數 ACCEPT_KEYWORDS 定義您的系統使用的軟體分支,預設是軟體在您系統架構下的穩定分支,例如 x86

ACCEPT_KEYWORDS defines the software branch used by your system & #xff0c; defaults are the stable branch of the software in your system architecture & #xff0c; e.g. x86.

我們建議您只使用穩定分支(the stable branch)。但是,如果您不是很在意穩定性的問題,而且您願意幫助 Gentoo 偵測臭蟲,回報給 http://bugs.gentoo.org,請您繼續閱讀這份文件。

We suggest that you use only the stable branch & #xff08; the stuck branch & #xff09; but & #xff0c; if you are not very careful about the stability & #xff0c; and if you are willing to help Gentoo detect bugs & #xff0c; report back to #xff0c; please continue reading this document.

測試分支

如果您想要使用最新的軟體,您可以考慮選用測試分支(the testing branch)。要讓 Portage 使用測試分支,在您的系統架構前加上 ~。

If you want to use the latest software & #xff0c; you can consider using the test branch & #xff08; the testing branch #xff09; let Portage use the test branch & #xff0c; add ~ before your system architecture.

測試分支就如同他所說的 - 測試。如果一個套件在測試中,這代表發展者覺得他可以運作,但是還沒有詳細的測試。你可以成為第一個發現錯誤的人,在這種狀況你可以回報錯誤讓發展者知道

The test branch is like he said - . If a package is in the test & #xff0c; this means that the developer thinks he can run & #xff0c; but there is no detailed test yet. You can be the first person to find a mistake & #xff0c; in this case you can report the error

要小心的是,你可能會捧到一些不穩定的問題,不完美的套件管理(例如錯誤/遺失相依性) ,過於頻繁的更新(導致要花很多時間編譯)或毀損的套件。如過你不清楚 Gentoo 如何運作及如何去修復,我們建議你停留在穩定而且測試過的分枝。

Carefully & #xff0c; you may have some unstable problems & #xff0c; imperfect package management (e.g. errors/dependency) & #xff0c; too frequent updates (which take a lot of time to compile) or damaged packages. As you don't know how Gentoo works and how to fix #xff0c; we suggest you stay in stable and tested branches.

舉例來說,要選擇 x86 架構下的測試分支,編輯 /etc/make.conf,並做如下設定:

xff0c, for example; select test branch xff0c for x86 structures; edit , and set the following settings xff1a;

原始碼?1: 設定 ACCEPT_KEYWORDS 變數

ACCEPT_KEYWORDS="~x86"

如果您現在要更新您的系統了,您會發現 一大堆 套件都需要升級。必須提醒您的是:當您用測試分支更新完您的系統之後,沒有辦法可以輕易地將系統改回使用官方建議的穩定分支(當然,使用備份例外)。

If you are going to update your system now xff0c; you will find that a whole bunch of packages need to be upgraded. You must be reminded that this is xff1a; xff0c when you have updated your system with a test branch; there is no easy way to convert the system back to the officially recommended stable branch xff08; xff0c; of course, use backup exceptions xff09;

3.b. 混合使用穩定和測試分支

檔案 package.keywords

您可以要求 Portage 針對特定的套件使用測試分支,而系統其他所有的套件仍使用穩定分支。如果您想要這樣的功能,將您希望使用測試分支的套件類別和名稱加到檔案 /etc/portage/package.keywords 裡面。例如,要使用 gnumeric 的測試分支:

You can ask Portage to use the test branch xff0c for a given package; all other packages in the system still use stable branches. If you want this function xff0c; add the type and name of the package that you want to use the test branch to the file . For example xff0c; use gnumeric test branch #xff1a;

原始碼?2: /etc/portage/package.keywords 內 gnumeric 的設定,完整版

app-office/gnumeric ~x86

測試特定版本

如果您想要使用軟體在測試分支內某個特定的版本,但是您不希望 Portage 在後續的軟體更新上繼續使用測試分支,您可以在檔案 package.keywords 內加入版本資訊。在這種情況下,您 一定要 使用 = 運算子,您也可以使用 <=, <, > 或是 >= 運算子,鍵入一個版本範圍。

If you want to use software for a specific version of xff0c in the test branch, but you do not want Portage to continue using the test branch xff0c in a subsequent software update; you can add version information to the file . In this case xff0c; you & #61; you can also use < #61; < & gt; or > & #61; operations #xff0c; type one version.

在任何情況下,如果您要加入版本資訊,您 一定要 使用運算子。如果您不想加入版本資訊,您 不可以 使用運算子。

In any case xff0c; if you want to add version xff0c; if you you must use . If you do not want to add version xff0c; if you you cannot use .

在下面的例子中,我們要求 Portage 接受 gnumeric-1.2.13:

In the following example xff0c; we request Portage to accept gnumeric-1.2.13:

原始碼?3: 使用特定 gnumeric 版本

=app-office/gnumeric-1.2.13 ~x86 

3.c. 使用被封鎖的套件

檔案 package.unmask

Gentoo 發展者支援這些檔案的使用。請在練習時小心使用。和 package.unmaskpackage.mask 相關的要求並不會回應。

Gentoo Developer does not support the use of these files. Please use them carefully during practice. The requirements associated with package.unmask and package.mask 內會陳述套件被封鎖的理由(預設放在 /usr/portage/profiles),如果您仍然想要使用這個套件,將紀錄該套件的那行文字,原封不動 地加到檔案 /etc/portage/package.unmask 內。

When a package is blocked by Gentoo Developer & #xff0c; if you still want to use this package xff0c; record the line of the package #xff0c; and add it to the file /etc/portage/package.unmask.

舉例來說,如果 =net-mail/hotwayd-0.8 被封鎖了,您可以在 package.unmask 內加入完全相同的文字,而將其解封鎖:

For example, xff0c; if #61; net-mail/hotwayd-0.8 is blocked xff0c; you can insert identical text xff0c; unmask; and unblock xff1a;

原始碼?4: /etc/portage/package.unmask

=net-mail/hotwayd-0.8

檔案 package.mask

當您不希望 Portage 將某個套件或是套件的某特定版本列入考量範圍,您可以自己將該套件封鎖起來,這只需要在檔案 /etc/portage/package.mask 中加入相對應的紀錄。

When you do not want Portage to include a package or a specific version of the package in the range xff0c; you can seal the package yourself xff0c; this only requires a matching log in the file .

例如,如果您不希望 Portage 安裝比 gentoo-sources-2.6.8.1 更新版的 kernel sources,您可以將下列一行文字加入 package.mask

For example xff0c; if you do not want Portage to install a newer version of gentoo-sources-2.6.8.1 ; you can add the following line to

原始碼?5: /etc/portage/package.mask 範例

>sys-kernel/gentoo-sources-2.6.8.1

4. 附加的Portage工具

4.a. etc-update

etc-update 是一個幫助合併 ._cfg0000_<名稱> 檔案的工具。他提供互動式的合併設定,也可以自動處理明顯的改變。 ._cfg0000_<名稱> 檔案是由 Portage 在他想要把檔案複寫到被 CONFIG_PROTECT 變數保護的目錄時產生的。

is a tool to help merge files . He provides interactive combination settings & #xff0c; he can also automatically process obvious changes. files are generated by Portage when he wants to copy the file to a directory where the CONFIG_PROTECT variable is protected.

執行 etc-update 相當的直觀:

etc-update is quite intuitive #xff1a;

原始碼?1: 執行 etc-update

# etc-update

在合併明顯的改變後,你會看到需要更新的受保護檔案列表。在底下有兩個選項:

xff0c after merging obvious changes; you will see a list of protected files that need to be updated. There are two options below xff1a;

原始碼?2: etc-update 選項

Please select a file to edit by entering the corresponding number.
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i'):

如果你輸入 -1etc-update 會離開不做任何改變。輸入 -3-5 的話,所有列在上面的設定檔都會用新的覆蓋。因此先選擇不要自動更新的設定檔相當重要。這是很簡單的一件事情,只要輸入列在設定檔左邊的號碼就好。

If you enter etc-update will leave without any change. If you enter or , xff0c;

我們用 /etc/pear.conf 設定檔當作範例:

We use the profile as an example xff1a;

原始碼?3: 更新特定設定檔

Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
[...]
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again

你現在可以看到新舊設定檔間的不同處。如果你相信更新過的設定檔可以正確無誤的使用,輸入 1。如果你認為更新檔案沒有必要,或沒有提供任何新或有用的資訊,輸入 2。如果你想要互動的更新目前的設定檔,按 3

Now you can see the difference between the old and the new configuration files. If you believe that the updated profile can be used correctly and correctly xff0c; enter 1. If you do not think it is necessary to update the file xff0c; or do not provide any new or useful information xff0c; enter . If you want to interactively update the current profile xff0c; press .

在這裡更深入的說明互動是並沒有意義。為了完整的理由,我們會列出在你互動合併兩個檔案時可以用的指令。你會看到兩行(原來的,以及新建議的)和你可以輸入下列指令的提示符號:

A deeper explanation of interaction here is meaningless. For a complete reason xff0c; we will list the instructions that you can use to merge two files. You will see the two lines (original xff0c; and new suggested) and the hint xff1a that you can type in the following commands;

原始碼?4: 互動合併時可用的指令

ed:     在編輯器中編輯兩種版本,各個版本前加上不同標頭。
eb:     在編輯器中編輯兩種版本。
el:     編輯左邊的版本然後使用。
er:     編輯右邊的版本然後使用。
e:      編輯新的版本。
l:      使用左邊的版本。
r:      使用右邊的版本。
s:      簡潔的包含共同部份。
v:      詳細的包含共同部份。
q:      Quit.

當你更新好這重要的設定檔,你以自動更新所有其他的設定檔。如果沒有其他需要更新的檔案,etc-update 會自動離開。

When you update this important profile & #xff0c; you automatically update all other profiles. If there are no other files that need to be updated & #xff0c; etc-update, you will leave automatically.

4.b. dispatch-conf

使用 dispatch-conf 你可以合併更新到你的更新當同時監看所有的改變。 dispatch-conf 以 patch 檔案或是使用 RCS 修訂版系統來儲存設定檔間的不同處。

Use dispatch-conf to update your update and monitor all changes at the same time. dispatch-conf to patch files or to use the RCS custom system to save different parts of the configuration file.

就像 etc-update,你可以保持原本的設定檔,使用新的設定檔,編輯目前設定檔或互動合併改變。然而 dispatch-conf 也有一些很棒的功能。

Like , you can keep the original profile & #xff0c; use the new profile & #xff0c; edit the current profile file or interactive combination changes. However, dispatch-conf also has some great functions.

  • 自動合併只有註解更新的檔案。
  • 自動合併只有空白的地方修改的檔案。

確定你先編輯過 /etc/dispatch-conf.conf 然後建立 archive-dir 變數設定的目錄。

Make sure you edit the directory and then create anarchive-dir variable settings.

查看 dispatch-conf 手冊頁取得更多資訊:

For more information, see dispatch-conf.

原始碼?5: 閱讀 dispatch-conf 手冊頁

$ man dispatch-conf

4.c. quickpkg

使用 quickpkg 你可以建立已經安裝在你系統上軟體的套件檔。這檔案可以當作預先編好的套件。執行 quickpkg 相當直觀:只要加入你想製作的套件名。

Use to create a package file that has been installed on your system. This file can be used as a pre-assembled package. Run quite straightforward xff1a; add the name of the package you want to make.

例如說,打包 curlartsprocps

For example, xff0c; packing curlarts and #xff1a;

原始碼?6: quickpkg 使用範例

# quickpkg curl arts procps

預先編譯好的套件會放在 $PKGDIR/All (預設是 /usr/portage/packages/All)。到這些套件的符號連結在 $PKGDIR/<category>

The pre-developed packages will be placed at $PKGDIR/All (predicted as /usr/portage/packages/All). The symbols of these packages are linked at $PKGDIR/<category>.

5. 愉悅的使用官方的Portage Tree

5.a. 使用 Portage 樹子集合

排除套件/類別

你可以選擇只更新某些類別/套件並且忽略其他類別/套件。我們讓 emerge --sync 在執行 rsync 時排除類別/套件來達成這個功能。

You can choose to update only some categories/sets and ignore others/sets. Let emerge-sync removes class/sets from this function when running .

預設上,rsync 會檢查 /etc/portage/rsync_excludes 的內容(如果存在的話),裡面包含了你不要 rsync 更新的類別或套件。

xff0c; rsync will check the contents of (if any) xff0c; it contains your not rsync.

然而要注意的是這可能導致相依性問題,因為套件可能相依被排除的套件。

It should be noted, however, that this may lead to a dependency problem & #xff0c; since the package may depend on the excluded package.

5.b. 加入非官方套件

定義 Portage Overlay 目錄

你可以要求 Portage 使用非官方,但是以透過 Portage 樹使用的 ebuild。建立一個新目錄(例如說 /usr/local/portage)來存放其他人提供的 ebuild。使用和官方 Portage 樹相同的目錄架構!

You can ask Portage to use unofficial & #xff0c; but to create a new directory (e.g. ) to store ebuld from others. Use the same directory set as the official Portage tree xff01;

然後在 /etc/make.conf 中定義 PORTDIR_OVERLAY 指向你使用的目錄。現在當你使用 Portage 時,他也會將這些 ebuild 納入考慮,而且下次你執行 emerge --sync 時不會移除/覆蓋這些 ebuild。

Then, in , PORTDIR_OVERLAY points to the directory that you use. Now when you use Portage & #xff0c; he will also consider these ebulds & #xff0c; and you will not remove/ overwrite these ebulds when you run emrage --sync.

使用多個 Overlay

對於開發多個 overlay 的重度使用者,在更新 Portage tree 前測試或是使用多個來源的非官方 ebuild,app-portage/gentoolkit-dev 套件提供你 gensync,幫助你保持 overlay 在最新的狀態。

For multiple overlay users & #xff0c; unofficial eBuild, before updating Portage Tree or using multiple sources; packages provide you , help you keep overlay in the latest state.

你可以用 gensync 一次更新所有 Overlay,或更新其中幾個。每個 Overlay 要在 /etc/gensync/ 目錄中放一個 .syncsource 檔案,包含 Overlay 位置,名稱,ID 等等。

You can update all Overseas & #xff0c; or some of them at once with gensync. Each Overlay has to post a file ..syncsource & #xff0c; #xff0c; name #xff0c; ID, etc.

假設你有兩個叫作 java (發展中的 java ebuild) 以及 entapps (你為工作開發的軟體),你可以像這樣更新 overlay:

Suppose you have two names called and xff0c; you can update overlay: like this;

原始碼?1: 使用 gensync 更新一些 overlay

# gensync java entapps

5.c. 非 Portage 維護的軟體

使用 Portage 和自己維護的軟體

在某些情況你會想要自己設定,安裝,維護軟體而不要 Portage 自動完成這些過程,雖然是 Portage 已經提供這些軟體了。已知的例子是核心原始碼和 nvidia 驅動程式。你可以作一些設定讓 Portage 知道某個套件已經手動裝到系統上了。這個過程叫做 注入 而且透過 /etc/portage/profile/package.provided 檔案 Portage 支援這個功能。

In some cases, you want to set yourself up & #xff0c; install & #xff0c; maintain software instead of Portage auto-driving these processes & #xff0c; although Portage already provides these software. Known examples are core source code and nvidia driver. You can make some settings for Portage to know that a package has been manually installed on the system. This process is called and is supported by file Portage >/etc/portage/profile/package.provided files.

舉例來說,如果你想要告訴 Portage vanilla-sources-2.6.11.6 你已經手動裝好了,把底下幾行加到 /etc/portage/profile/package.provided

For example, #xff0c; if you want to tell Portage, you have manually installed #xff0c; add the following rows to

原始碼?2: package.provided 範例

sys-kernel/vanilla-sources-2.6.11.6

6. Ebuild的應用方式

6.a. Emerge 與 Ebuild

ebuild 程式是 Portage 系統較低層的操控介面。你可以透過給予 ebuild 檔案,使用這個程式去執行特定動作。例如,你可以單獨執行各個 merge 步驟。

The program is a lower-level control interface for the Portage system. You can execute specific actions using this program through the eBuild file & #xff0c. For example #xff0c; you can run individual merge steps.

使用 ebuild 大多是為了開發;更多關於 ebuild 的資訊因此可以在 開發者手冊中找到。然而,我們將解釋在 merge 一個確切的軟體名稱時,什麼 ebuild 動作會被 Portage 請求,還有如何執行一些 ebuilds 支援的後端配置。

Most of the use of is for the development of #xff1b; more information on can therefore be found at . However, #xff0c; we will explain what ebuld actions will be requested by Portage; and how to implement some backend configurations supported by eBuilds.

6.b. 手動安裝軟體

抓取原始碼 & 驗證 checksum

當你使用 ebuild 程式且給他一個 ebuild 檔案,他將驗證所有內涵檔案的 checksums 是否與 Manifest 附帶的,或與 files/digest-<name>-<version> 檔案中的 checksums 相同。這會在下載原始碼之後執行。

When you use the program and give him an ebuild file & #xff0c; he will verify whether the checksums of all contents are the same as the #xff0c attached to Manifest; or files. This will be implemented after downloading the original code.

使用 ebuild 抓取原始碼, 請執行:

Fetch source code using ebuild, please execute:

原始碼?1: 抓取原始碼

# ebuild path/to/ebuild fetch

如果 ebuild 的 md5sum 不符合列在 Manifest 檔案裡面的那份,或是下載的原始碼不符合列在 files/digest-<package> 檔案中的那些 checksum,你將收到像是這樣的錯誤訊息:

If the md5sum of eBuild does not match the xff0c in the file Manifest; or if the downloading source code does not match the file in files/digest-<package> files that checksum, you will receive erroneous messages such as #xff1a;

原始碼?2: Ebuild checksum 錯誤

!!! File is corrupt or incomplete. (Digests do not match)
>>> our recorded digest: db20421ce35e8e54346e3ef19e60e4ee
>>>  your file's digest: f10392b7c0b2bbc463ad09642606a7d6

接著會指出錯誤的檔案。

Then the wrong file will be pointed out.

如果你確定你下載的原始碼和 ebuild 本身正確無誤,你可以使用 ebuild 的 digest 功能重新建立 Manifestdigest-<package>

If you are sure that your downloads of the original code and eBuild are correct in their own right xff0c; you can recreate ebuld and Manifest and .

原始碼?3: 重新建立 Manifest and digest

# ebuild path/to/ebuild digest

解開原始碼包裹

想解開 /var/tmp/portage(或你在 /etc/make.conf 指定的其他目錄路徑)中的原始碼檔案, 可以使用 ebuild 的 unpack 功能:

/var/tmp/portage( or other directory path & #xff09 that you specified at ; original code files that can use

原始碼?4: 解開原始碼包裹

# ebuild path/to/ebuild unpack

這將執行 ebuild 的 src_unpack() 函式(如果沒有定義 src_unpack() 函式,預設會單純解壓縮)。在這個步驟也會套用所有必須的修補檔。

This will run the src_unpack() function & #xff08 for eBuild; if the src_unpack() function & #xff0c is not defined, the default will simply uncompress & #xff09;. This step will also apply all necessary fixes.

編譯原始碼

在 merge 程序中,下個步驟就是編譯原始碼。ebuild 的 compile 功能是去執行 ebuild 檔案中的 src_compile() 函式。如果有需要,這也包含著 configure 步驟。

& #xff0c; the next step is to compile the source code. ebuilding functions to execute the src_compile() function in the eBuild file. If you need xff0c; this also contains a confuture step.

原始碼?5: 編譯原始碼

# ebuild path/to/ebuild compile

如果你想改變編譯指令,建議您編輯 ebuild 檔案中的 src_compile() 函式。然而,你也可以讓 Portage 以為 ebuild 程式已經完成編譯步驟了。自己執行所有必須的命令然後在工作目錄建立一個叫做 .compiled 的空檔案。

If you want to change the compilation command & #xff0c; you are advised to edit the src_compile() function in the eBuild file. However, & #xff0c; you can also let Portage think that the eBuild program has completed the process. Run all necessary commands yourself and create an empty file in the work directory called .

原始碼?6: 通知 Portage 編譯工作完成了

# touch .compiled

安裝暫存路徑中的檔案

下個步驟 Portage 將會安裝暫存目錄中的所有必要檔案。這個目錄將會包含所有要被 merge 到 Live 檔案系統的檔案。你可以跑 ebuild 的 install 功能來完成這個動作,他會執行 ebuild 檔案中的 src_install() 函式:

The next step Portage will install all necessary files in the temporary folder. This directory will contain all files that are to be moved to the Live file system. You can do this by running an install function ebuild @xff0c; he will execute src_install() function #xff1a from the ebuld file;

原始碼?7: 安裝檔案

# ebuild path/to/ebuild install

Merge 檔案到 Live 檔案系統

最後一個步驟是把所有檔案 merge 到 Live 檔案系統和登記他們到 Portage 後端。 ebuild 將這個步驟稱做 "qmerge",而且包含下列步驟:

The last step is to move all files to the Live file system and log them to the backend of Portage. ebuld calls this step & #34;qmerge" xff0c; and contains the following steps xff1a;

  • 若有指定,將會執行 pkg_preinst() 函式
  • 複製所有檔案到 Live 檔案系統
  • 登記檔案到 Portage 後端
  • 若有指定,將會執行 pkg_postinst() 函式

執行 ebuild 的 qmerge 功能以達成這些步驟:

qmerge with ebuilding to achieve these steps #xff1a;

原始碼?8: Merge 檔案到 Live 檔案系統

# ebuild path/to/ebuild qmerge

清除暫存目錄

最後,你可以使用 ebuild 的 clean 功能清除暫存資料夾:

& #xff0c; you can clear temporary folder #xff1a using ebuild;

原始碼?9: 清除暫存目錄

# ebuild path/to/ebuild clean

6.c. 額外的 ebuild 特性

執行所有 Merge 相關命令

使用 ebuild 的 merge 功能,你可以一次執行 fetch、unpack、compile、install、qmerge 命令:

Use the merge function & #xff0c; you can execute the fetch, unpack, compile, install, qmerge & #xff1a at once;

原始碼?10: 安裝軟體

# ebuild path/to/ebuild merge

執行設定動作

某些程式包含對你系統更進一步設定的指令。這些指令可以與人互動,也因此不會自動執行。使用 ebuild 的 config 功能來執行列在 ebuild 檔案裡(非必要)config() 函式中的設定步驟:

Some programs contain instructions for further configuration of your system. These commands can interact with people & #xff0c; therefore they will not be automatically executed. Use the config function ebuild to perform & #xff08; non-necessary #xff09;config() setsteps in the config function xff1a;

原始碼?11: 設定套件

# ebuild path/to/ebuild config

建立一個 (RPM) 套件

你可以叫 Portage 由 ebuild 檔案建立一個二進位的套件,即使是 RPM 檔案。使用 ebuild 的 package 或 rpm 功能去建立這些檔案。然而這兩個功能有些不同:

You can ask Portage to create a binary package & #xff0c; even for RPM files by eBuild files. Use ebuild package or rpm to create these files. However, these two functions are somewhat different #xff1a;

  • package 功能與 merge 功能非常相像,在建立套件之前,會執行所有必備的動作 (fetch、unpack、compile、install)
  • rpm 功能會把執行 ebuild 的 install 功能之後所建立的檔案 包成 RPM 套件。

原始碼?12: 建立套件

(建立 Portage 相容,已編譯好套件)
# ebuild path/to/ebuild package

(建立 RPM 套件)
# ebuild path/to/ebuild rpm

然而用此方式建立的 RPM 檔案並不包含 ebuild 的相依性相關訊息。

However, the RPM file created this way does not contain the dependencies of eBuild.

6.d. 更多資訊

要更多關於 Portage、ebuild 程式和 ebuild 檔案的資訊,請查閱下列 man page:

More information about Portage, eBuild programs and eBuild files & #xff0c; see man page & #xff1a below;

原始碼?13: Man pages

$ man portage    (Portage 本身)
$ man emerge     (emerge 命令)
$ man ebuild     (ebuild command)
$ man 5 ebuild   (The ebuild file syntax)

你也可以在 開發者手冊 找到更多有關開發的資訊

You can also find more relevant information on development at .

1. 新手上路

1.a. Getting started

注意: 這篇文件假設你已成功的設定核心,和它的網路設備模組並且知道介面名稱. 我們並且假設你現在在設定eth0,但是也可以是eth1,wlan0,或其他.

注意: 這篇文章適用baselayout-1.11.11或更新的版本.

要開始設定你的網路卡,你需要告訴Gentoo RC系統相關的資訊. 做一個符號連結從 net.lonet.eth0/etc/init.d 目錄以完成這項動作

To start setting up your network cards, you need to tell Gentoo RC system-related information. Make a symbol link from to in the directory

原始碼?1: 做一個符號連結從 net.eth0 到 net.lo

# cd /etc/init.d
# ln -s net.lo net.eth0

Gentoo's RC 系統現在知道這個介面了.它一樣也需要知道如何設定這個介面.所有的網路介面設定都在 /etc/conf.d/net這個檔案完成.接下來是一個用dhcp和靜態ip的範例設定.

Gentoo' s RC system now knows the interface. It also needs to know how to configure it. All network interface settings are completed in the file . Next is an example set with dhcp and static ip.

原始碼?2: /etc/conf.d/net範例

# 使用 DHCP
config_eth0=( "dhcp" )

# 設定靜態 IP 使用 CIDR 標記法
config_eth0=( "192.168.0.7/24" )
routes_eth0=( "default via 192.168.0.1" )

# 設定靜態 IP 使用網路遮罩標記法
config_eth0=( "192.168.0.7 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.0.1" )

注意: 如果你沒有為你的接面設定的話,我們會假定你使用dhcp取得ip.

注意: CIDR 表示無階級跨網域路由 (Classless InterDomain Routing). 原來, IPv4 位址被分成 A, B, C三個等級. 早期的分類系統並沒有想像到 Internet 的巨大發展,就造成了獨立位址會被用光的危機. CIDR 是一個地址表示規格容許一個 IP 位址去表示很多 IP 位址. A CIDR IP 位址可以看起來很像一般的 IP 位址除了它結束的地方多了一個反斜線和一個數字; 一個範例,192.168.0.0/16. CIDR 的詳細描述在 RFC 1519.

現在我們已經完成設定這個介面,我們可以使用以下的命令來啟動和停止它.

Now that we've finished setting up this interface, we can use the following commands to activate and stop it.

原始碼?3: 啟動和停止網路介面

# /etc/init.d/net.eth0 start
# /etc/init.d/net.eth0 stop

重要: 在我們想要對網路除錯時,我們建議設定 RC_VERBOSE="yes"/etc/conf.d/rc 檔案,我們就可以得到關於發生什麼事情的更多資訊.

.現在我們已經成功開始和停止我們的網路介面,你也許會想要讓它在Gentoo啟動的時候也啟動. 下面就是做法.最後一個"rc" 命令叫 Gentoo 去啟動任何的程式在當時的runlevel還沒有啟動的.

Now that we've successfully started and stopped our network interface, you might want it to start when Gentoo starts. Here's the way. The last #34; rc#34; command Gentoo to go and start any program hasn't started in Runlevel at the time.

原始碼?4: 設定一個網路介面在開機時啟動

# rc-update add net.eth0 default
# rc

2. 進階設定

2.a. 進階設定

config_eth0 變數是網路介面設定的核心。他是一個高階的網路介面(例子中是 eth0)設定列表。在列表中的每個指令依序執行。當最後一個指令成功後網路介面就視為可以用了。

The config_eth0 variable is the core of the network interface settings. He is a high-level network interface (e. g. eth0). Each command in the list is executed sequentially. The network interface is considered useful when the last command is successful.

這是內建指令的列表。

This is the list of built-in instructions.

指令說明
null不做任何事
noop如果網路介面啟動而且有一個位址,那就成功離開設定
an IPv4 or IPv6 address為這個介面加上一個網路位址
dhcp, adsl or apipa (或是第三方模組提供的自訂指令) 執行這個指令的模組。例如說 "dhcp" 會執行 dhcp 模組,是 dhcpcd,udhcpc, dhclient 或 pump 其中一個。

如果有一個失敗了,你可以指定 fallback 指令。fallback需要完全符合設定的結構。

If there is a failure & #xff0c; you can specify the fallback command. Fallback needs to fully fit the configuration.

你可以把這些指令連在一起。底下是一些實際的範例。

You can connect these instructions. Here's some practical examples.

原始碼?1: 設定範例

# 加上三個 IPv4 位址
config_eth0=(
  "192.168.0.2/24"
  "192.168.0.3/24"
  "192.168.0.4/24"
)

# 加上一個 IPv4 位址及兩個 IPv6 位址
config_eth0=(
  "192.168.0.2/24"
  "4321:0:1:2:3:4:567:89ab"
  "4321:0:1:2:3:4:567:89ac"
)

# 使用核心指定的位址,如果網路介面停止的話改用 DHCP。
# DHCP 失敗的話由 APIPA 指定一個位址。
config_eth0=(
  "noop"
  "dhcp"
)
fallback_eth0=(
  "null"
  "apipa"
)

注意: 當使用 ifconfig 模組並且加上超過一個位址,每個位址會建立一個別名。上面的例子你會有 eth0,eth0:1 和 eth0:2 這幾個介面。你不能對多出來的介面做任何事。因為核心和其他程式會把 eth0:1 和 eth0:2 當作 eth0。

重要: fallback 中的順序相當重要!如果你沒有在 "apipa" 之前指定 "null",他只有在 "noop" 指令失敗時才會做。

注意: APIPADHCP 稍後會討論。

2.b. 網路相依性

/etc/init.d 中的 可以依賴某個網路介面或是任一個(net),"net" 可以在 /etc/conf.d/rc 中的 RC_NET_STRICT_CHECKING 變數定義代表那些東西。

/etc/init.d can rely on a network interface or on any (net), #34;net" can represent those things by variable definition.

說明
nonenet 服務總是被認為啟動了
no這基本上代表除了 net.lo 以外,任一個 net.* 服務啟動才算。這個可以給同時有無 線網路及有線網路的筆記型電腦使用者使用,因為某一時間只要其中之一介面啟動了, net 服務就被視為啟動。
lo這和 'no' 相同,但是 net.lo 也被考慮在內。這對於不在意哪個介面啟動的使用者 很有用。
yes所有的網路介面啟動了 'net' 服務才算啟動。

但是,net.br0 要依賴 net.eth0 還是 net.eth1?net.eth1 可能是一個無線網路或 ppp 裝置,需要在橋接前先做設定。這不能由 /etc/init.d/net.br0 完成,因為他只是一個到 net.lo 的符號連結。

But xff0c; net.br0 depends on net.eth0 or net.eth1?net.eth1 may be a wireless network or ppp device xff0c; it needs to be configured before the bridge is connected. This cannot be done by ; because he is only a symbol link to net.lo.

解答是在 /etc/conf.d/net 做一個你自己的 depend() 函數。

The answer is to make your own depend() function at .

原始碼?2: /etc/conf.d/net 中 net.br0 相意關係

# 你可以使用任何在目前檔案的相依關係 (use, after, before)
depend_br0() {
  need net.eth0 net.eth1
}

要取得更多關於相依性的討論。參考 寫 Init Scripts

See .

2.c. 變數名稱及設定值

變數名稱是動態的。他們的結構通常是 variable_${interface|mac|essid|apmac} 。例如說,dhcpcd_eth0 變數代表 eth0 的 dhcpcd 設定。而 dhcpcd_essid 則是任何介面連到這個 "essid" 時的 dhcpcd 設定。

The variable names are dynamic. Their structure is usually variable_${interfacemacassidapmac}. For example, , dhcpcd_eth0 variables represent the dhcpcd settings of eth0. dhcpcd_essid is any interface to this & #34;essid& #34; dhcpccd settings.

然而,並沒有簡單的法則決定介面的名稱。實際上,許多無線網路介面除了 ethx 以外,也會用像 wlanx,rax 之類的名稱。而且一些使用者定義的介面,像橋接,可以給 foo 之類的自訂名稱。為了讓生活更加有趣,無線網路結點可以在名稱中有非英文,數字的字元 - 因為你要對每個 ESSID 設定參數,這一點相當重要。

However, xff0c; there is no simple law to determine the name of the interface. In fact xff0c; many wireless network interfaces besides ethx & #xff0c; names like wlanx, rax. And some users define interfaces xff0c; bridges #xff0c; self-designated names like foo. To make life more interesting xff0c; wireless network nodes can have non-English xff0c; numeric characters - because you have to set parameters for each ESSID #xff0c; this is important.

Gentoo 在網路設定的缺點是使用 bash 變數 - 不能使用任何數字,英文字母以外的東西。為了突破這個限制,我們把所有非數字,英文字母的字元轉成 _ 字元。

The defect of Gentoo's network settings is the use of the bash variable - nothing other than the English letter can be used. To break this limit xff0c; we convert all non-digits xff0c; the characters of the English letter to _ characters.

另一個不方便的地方是變數的值 - 需要跳脫一些字元。這可以在需要跳脫的字元前加上 / 字元來完成。底下是需要像這樣跳脫的字元列表:"'/

The other inconvenience is the value of the variable - some characters need to jump off. This can be done by adding / characters before the characters that need to jump off. Below are the character lists that need to jump like this & #xff1a; #34; #39; and .

在範例中為了讓 ESSID 包含最多種的字元,我們使用這個 My "/ NET ESSID:

In the example, in order for ESSID to contain the most type of character & #xff0c; we use this My & #34;/NET ESSID:

原始碼?3: 變數名稱範例

# 這可以運作,但是領域名稱是不合法的
dns_domain_My____NET="My /"// NET"

# 上面的例子是當連到 ESSID 是 My "/ NET 的 AP 時,
#把領域名稱設成 My "/ NET 

3. 網路模組

3.a. 網路模組

我們現在支援模組化的網路 script,這代表可以輕鬆的支援新的網路介面和設定模組,而且同時和原來的保持相容性。

We are now supporting modular network script, this is an easy way to support new network interfaces and configuration modules & #xff0c; and is compatible with the original.

如果模組需要的套件已經安裝,他就會自動載入。但是如果你指定一個還沒安裝套件的模組,那你會收到一個錯誤訊息,告訴你要安裝哪個套件。理想上,只有在你安裝兩個以上提供相同功能的套件,而且你比較喜歡某一個時,才需要用模組設定。

If the package needed for the module is installed xff0c; he will automatically load it. But if you specify a module xff0c, you will receive an error message xff0c; tell you which package you want to install. Ideally xff0c; only if you install two or more sets that provide the same function xff0c; and if you prefer a time xff0c; you need a module configuration.

原始碼?1: 模組優先權

# 想用 iproute2 而不是 ifconfig
modules=( "iproute2" )

# 你也可以為一個介面指定不同的模組
# 在底下的例子我們比較想用 udhcpc 而不是 dhcpcd
modules_eth0=( "udhcpc" )

# 你也可以指定不要用哪個模組 - 例如說你可能想
# 使用 linux-wlan-ng 來控制無線網路設定
# 但是你仍然想對每一個 ESSID 做設定
modules=( "!iwconfig" )

3.b. 網路介面管理

我們目前提供兩種不同的網路管理程式:ifconfig 及 iproute2。你可以用這兩個其中之一來做任何種類的網路設定。

We currently provide two different web admins & #xff1a; ifconfig and iprote2. You can use one of these two to make any kind of network settings.

ifconfig 是目前 Gentoo 預設使用的,並且包含在系統 profile 之中。iproute2 是更有威力及彈性的套件,但是預設並不包含他。

Ifconfig is xff0c, which is currently defaulted for Gentoo; and is included in the system profile. iproute2 is a more powerful and resilient package xff0c; but the default does not contain him.

原始碼?2: 安裝 iproute2

# emerge sys-apps/iproute2

# 如果兩個都安裝的話,使用 iproute2
modules=( "iproute2" )

因為 ifconfig 和 iproute2 都是做很類似的事,我們讓這兩個可以使用共同的基本設定。例如說底下兩段程式碼不管對那種都適用。

Because ifconfig and iproute2 are very similar things & #xff0c; we let them use common basic settings. For example, the next two codes are appropriate for that.

原始碼?3: ifconfig 和 iproute2 範例

config_eth0=( "192.168.0.2/24" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0" )

# 我們也可以指定廣播位址
config_eth0=( "192.168.0.2/24 brd 192.168.0.255" )
config_eth0=( "192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255" )

3.c. DHCP

DHCP 是一種從 DHCP 伺服器取得網路資訊(IP 位址,DNS 伺服器,閘道器等等)的方法。這代表如果網路上有一個 DHCP 伺服器,你只要告訴客戶端使用 DHCP 然後他們就會自己把網路設好。當然,如果在使用 DHCP 前必需要用無線網路,ppp 等其他事的話你必需要去設定。

DHCP is a way to get Internet information from a DHCP server (IP address & #xff0c; DNS server & #xff0c; tracker, etc.). This means that if there is a DHCP server & #xff0c on the Internet, you just tell your client to use DHCP and then they will set up the network themselves. Of course xff0c; if you need to use DHCP, you have to go to the configuration if you need to use the wireless network #xff0c; ppp, among other things.

DHCP 功能可以由 dhclient,dhcpcd,pump 或是 udhcpc 提供。每一種 DHCP模組都有他的好處和壞處 - 底下是快速的簡介。

The DHCP function can be provided by dhcliant, dhcpcd, pump or udhcpc. Each DHCP module has its advantages and disadvantages - a quick summary below.

DHCP 模組套件優點缺點
dhclientnet-misc/dhcp由 ISC,和製作 BIND DNS 軟體的同一批人做的。設定非常有彈性。 設定相當複雜,軟體非常肥大,沒辦法從 DHCP 取得 NTP 伺服器,預設不送主機名稱。
dhcpcdnet-misc/dhcpcdGentoo 一直以來的預設套件,不依賴任何其他工具 不再被上游維護,有些時候很慢,當租約無限久時不會變成系統服務
pumpnet-misc/pump輕巧,不依賴任何其他工具 不再被上游維護,不可靠,尤其是在透過數據機時,不能從 DHCP 取得 NIS 伺服器
udhcpcnet-misc/udhcp輕巧 - 最小的 DHCP 客戶端,為嵌入式系統而做的軟體 未知 - 沒有任何套件預設使用他,不能定義三秒以上的 timeout

如果你安裝一種以上的 DHCP 客戶端,你需要指定用那一個 - 否則預設是有 dhcpcd 可以用的話就用他。

If you install more than one DHCP client & #xff0c; you need to specify which one - otherwise the default is dhcpcd that can be used.

要送給 DHCP 客戶端自訂的選項,使用 module_eth0="..." (把 module 改成你在用的 DHCP 模組,例如說 dhcpcd_eth0)

Custom options to send to DHCP clients & #xff0c; using module_eth0= "... & #34;

我們嘗試讓 DHCP 相對來說不可知 - 因此在 dhcp_eth0 變數中支援下列指令。預設是不用任何一個。

We try to make DHCP relatively unknown - so support the following commands in the dhcp_eth0 variable. The default is none.

  • release - 釋放 IP 讓他可以重複使用
  • nodns - 不要複寫 /etc/resolv.conf
  • nontp - 不要複寫 /etc/ntp.conf
  • nonis - 不要複寫 /etc/yp.conf

原始碼?4: /etc/conf.d/net 的 DHCP 範例

# 只有在你安裝一種以上 DHCP 模組才需要
modules=( "dhcpcd" ) 

config_eth0=( "dhcp" )
dhcpcd_eth0="-t 10" # 十秒後 Timeout
dhcp_eth0="release nodns nontp nonis" # 只取得位址

注意: dhcpcd,udhcpc 和 pump 預設會傳送目前的主機名稱給 DHCP 伺服器,所以你不用去指定他。

3.d. ADSL 連線

首先我們要安裝 ADSL 軟體。

First we have to install ADSL software.

原始碼?5: Install the rp-pppoe package

# emerge net-dialup/rp-pppoe

警告: baselayout-1.11.x 目前只支援 PPPOE。我們希望以後的版本可以支援 PPPOA。

現在要設定 eth0 為 ADSL 連接的網路介面,並且輸入使用者名稱。

Sets the network interface for eth0 to ADSL connection & #xff0c; and enter the user name.

原始碼?6: 設定 eth0 使用 ADSL

config_eth0=( "adsl" )
adsl_user_eth0="username"

最後你要在 /etc/ppp/pap-secrets 定義使用者名稱及密碼。

Finally, you have to define user names and passwords at /etc/ppp/ap-sets.

原始碼?7: /etc/ppp/pap-secrets 範例

# * 非常重要
"username"  *  "password"

3.e. APIPA (自動取得虛擬 IP)

APIPA 藉由發送arp,詢問在 169.254.0.0-169.254.255.255 中隨機的一個位址來找到一個可以用的 IP。如果沒有收到就是可以用,接著就會把網路介面指定這個 IP。

APIPA finds a usable IP by sending arp, asking for a random address in 169254.0.0-169.254.252.555. If you do not receive it, you can use xff0c; then the network interface is assigned to this IP.

這只有在沒有 DHCP 伺服器並且沒有連到網際網路,及其他電腦也用 APIPA 時才適用。

This is only appropriate when there is no DHCP server and it is not connected to the Internet & #xff0c; and other computers use APIPA.

為了支援 APIPA,安裝 net-misc/iputils or net-analyzer/arping。

To support APIPA, install net-misc/iputils or net-analyzer/arping.

原始碼?8: /etc/conf.d/net 的 APIPA 設定

# 先試 DHCP - 失敗的話再用 APIPA
config_eth0=( "dhcp" )
fallback_eth0=( "apipa" )

# 只使用 APIPA
config_eth0=( "apipa" )

3.f. 頻寬合併

要使用頻寬合併,先安裝 net-misc/ifenslave

Use frequency width to merge xff0c; install net-misc/ifenslave

頻寬合併用來增加網路頻寬。如果你有兩個連到停一網路的網路介面,你可以把這兩個連結在一起,讓應用程式只看到一個網路介面,但實際上他們正同時使用兩個介面。

Width merges to increase network width. If you have two network interfaces & #xff0c that connect to a disabled network, you can link them together & #xff0c; let the application see only one network interface & #xff0c; but they are actually using two interfaces at the same time.

原始碼?9: /etc/conf.d/net 頻寬合併設定

把介面連在一起
slaves_bond0="eth0 eth1 eth2"

# 你或許不想給連結的介面 IP
config_bond0=( "null" )

# 因為 eth0,eth1 和 eth2 需要額外的設定,要在相依性中加入這三個
depend_bond0() {
  need net.eth0 net.eth1 net.eth2
}

3.g. 橋接 (802.1d 支援)

橋接的支援要先安裝 net-misc/bridge-utils

Bridge support has to be installed net-misc/bridge-tils

橋接是用來兩個網路連接在一起。例如說,你有一台伺服器透過 ADSL 連到網際網路,還有一張無線網路卡讓其他的電腦可以連到網際網路。你可以用橋接把這兩個連在一起。

Bridge connections are used to connect two networks. For example, xff0c; you have a server that connects to the Internet via ADSL; and a wireless network card that allows other computers to connect to the Internet. You can connect these two via the bridge.

原始碼?10: /etc/conf.d/net 橋接設定

# 設定橋接 - "man btctl" 取得更多資訊
brctl_br0=( "setfd 0" "sethello 0" "stp off" )

# 增加要橋接在 br0 的 port
bridge_br0="eth0 eth1"

# 你可以設定成 null 讓 dhcp 不會啟動
config_eth0=( "null" )
config_eth1=( "null" )

# 最後給橋接器一個位址 - 你也可以用 DHCP
config_br0=( "192.168.0.1/24" )

# 因為 eth0,eth1 需要額外的設定,要在相依性中加入這三個
depend_br0() {
  need net.eth0 net.eth1
}

重要: 要設定橋接,你可以參考 變數名稱 文件。

3.h. MAC 位址

你不用安裝任何東西就可以改變網路介面的 MAC 位址。然而,如果需要變成隨機的位址,或是某一種類的隨機位址,你需要安裝 net-analyzer/macchanger。

You do not have to install anything to change the MAC address of the network interface. However, xff0c; if you need to be a random address xff0c; or if you need to be a random address xff0c; you need to install a net-analyzer/macchanger.

原始碼?11: MAC 改變範例

# 指定網路介面的 MAC 位址
mac_eth0="00:11:22:33:44:55"

# 隨機決定最後三個位元組
mac_eth0="random-ending"

# 在所有品牌,同一種網路類型內(光纖,銅線,無線網路)隨機決定
mac_eth0="random-samekind"

# 在所有品牌,所有網路類型內(光纖,銅線,無線網路)隨機決定
mac_eth0="random-anykind"

# 完全隨機 - 警告:一些由這方法做出來的 MAC 位址可能不能正常工作
mac_eth0="random-full"

3.i. Tunnel

你需要裝任何東西就可以使用 tunnel 了,因為網路介面管理會幫你做這些事。

You need to load anything to use tunnel & #xff0c; because network interface management will help you do these things.

原始碼?12: /etc/conf.d/net 的 tunnel 設定

# GRE tunnels
iptunnel_vpn0="mode gre remote 207.170.82.1 key 0xffffffff ttl 255"

# IPIP tunnels
iptunnel_vpn0="mode ipip remote 207.170.82.2 ttl 255"

# 設定介面
config_vpn0=( "192.168.0.2 peer 192.168.1.1" ) 

3.j. VLAN (802.1q 支援)

安裝好 net-misc/vconfig 後,就可以支援 VLAN 了。

Install net-mic/vconfig after #xff0c; VLAN will be supported.

虛擬區網 (Virtual LAN) 是一組網路裝置運作時有如他們連到同一段區網一樣 - 但實際上可能不是。VLAN 成員即使是連在同一個實體區域網路,也只能看到同一 VLAN 的成員。

Virtual LAN is a set of network devices that operate as if they were connected to the same area network - but it may not. VLAN members can only see members of the same VLAN even if they are connected to the same physical area network & #xff0c.

原始碼?13: /etc/conf.d/net VLAN 設定

# 像這樣指定 VLAN 號碼
# 確定 VLAN ID 前面沒有加上 0
vlans_eth0="1 2"

# 你也可以修改 VLAN 的設定值
# 看 vconfig 手冊頁取得更多資訊
vconfig_eth0=( "set_name_type VLAN_PLUS_VID_NO_PAD" )
vconfig_vlan1=( "set_flag 1" "set_egress_map 2 6" )

# 如同一般的設定方式設定 vlan
config_vlan1=( "172.16.3.1 netmask 255.255.254.0" )
config_vlan2=( "172.16.2.1 netmask 255.255.254.0" )

重要: 要設定 VLAN,你可以參考 變數名稱 文件。

4. 無線網路

4.a. 介紹

目前我們支援用 wireless-tools 或 wpa_supplicant 來設定無線網路。要記得最重要的一點是無線網路的設定是全域為主,而不是以介面為主。

We currently support Wireless-tools or wpa_supplicant to configure the wireless network. The most important thing is to remember that the wireless network is set around the world & #xff0c; not the interface.

wpa_suppliant 是最好的選擇,但是他並不支援所有裝置。要看他所有支援的裝置請查看 wpa_supplicant 網站。此外,wpa_supplicant 目前只能連線到你已經設定的 SSID。

Wpa_supplicant is the best option & #xff0c; but he does not support all devices. See wpa_supplicant. Also xff0c; wpa_supplicant currently only connects to the SSIDs you have set up.

wireless-tools 幾乎支援所有的裝置,但是不能連到只使用 WPA 的 AP。

Wireless-tools supports almost all devices & #xff0c; but cannot be linked to AP using WPA only.

警告: 目前 baselayout 不支援 linux-wlan-ng。因為 linux-wlan-ng 有著和其他完全不同的設定方式。搖傳 linux-wlan-ng 開發者要把他們的設定變成 wireless-tools - 這代表可以在 baselayout 中使用 linux-wlan-ng。

4.b. WPA Supplicant

WPA Supplicant 是讓你連接到啟動 WPA 的 AP 的套件。因為還在測試中,他的設定過程常常改變 - 但是大部份情況都可以正常工作。

WPA Supplicant is a package of APs to connect you to the start-up WPA. Because xff0c is still being tested; his configuration has often changed - but most of the situation can work.

原始碼?1: 安裝 wpa_supplicant

# emerge net-wireless/wpa_supplicant

重要: 核心中要啟動 CONFIG_PACKET 才能讓 wpa_supplicant 工作。

現在要設定 /etc/conf.d/net 優先使用 wpa_supplicant 而不是 wireless-tools (兩個都安裝的話,預設會用 wireless-tools)。

uses wpa_supplicant instead of wireless-tools (two installers & #xff0c; defaults will use wireless-tools).

原始碼?2: /etc/conf.d/net 設定 wpa_supplicant

# 使用 wpa_supplicant 而不是 wireless-tools
modules=( "wpa_supplicant" )

# 因為他的偵測不是很好,所以要告訴 wpa_supplicant
# 要使用哪個驅動程式
wpa_supplicant_eth0="-Dmadwifi"

注意: 如果你用 host-ap 驅動程式你需要讓網路卡在管理模式,讓 wpa_supplicant 可以正確使用。在 /etc/conf.d/net 中加上 iwconfig_eth0="mode managed" 來設定。

很簡單不是嗎?然而,根據你要連線 AP 的安全程度,還有一些 wpa_supplicant 的設定要調整。底下的例子是從 wpa_supplicant 提供的 /etc/wpa_supplicant.conf.example 簡化而來的。

xff1f; however, xff0c; based on the safety level of the AP you want to connect to xff0c; and some of the wpa_supplicant settings to adjust. The example below is from wpa_supplicant .

原始碼?3: /etc/wpa_supplicant.conf 設定

# 不有改變這行,否則他不能工作
ctrl_interface=/var/run/wpa_supplicant

# 確保只有 root 可以讀取 WPA 設定
ctrl_interface_group=0

# 讓 wpa_supplicant 搜尋及選擇 AP
ap_scan=1

# 簡單的例子:WPA-PSK, PSK 使用 ASCII 密碼,只要密碼正確就允許
network={
  ssid="simple"
  psk="very secret passphrase"
  # 越高的優先權越快被使用
  priority=5
}

# 和前一個一樣,但是指定 SSID (適用
# 不廣播 SSID 的 AP)
network={
  ssid="second ssid"
  scan_ssid=1
  psk="very secret passphrase"
  priority=2
}

# 只用 WPA-PSK。任何有效的密碼組合都允許
network={
  ssid="example"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}

# 明文連線 (不用 WPA,IEEE 802.1X)
network={
  ssid="plaintext-test"
  key_mgmt=NONE
}

# Shared WEP key 連接 (不用 WPA,IEEE 802.1X)
network={
  ssid="static-wep-test"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}

# Shared WEP key 連接 (不用 WPA,IEEE 802.1X) 使用
# IEEE 802.11 Shared key 認證
network={
  ssid="static-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}

# IBSS/ad-hoc 網路加上 WPA-None/TKIP
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="secret passphrase"
}

4.c. Wireless Tools

初始設定及管理模式

Wireless Tools 提供通用的方法設定無線網路介面使用 WEP 安全等級。雖然 WEP 是脆弱的安全防護,但他也是最普及的。

Wireless Tools provides a common method to set the Wireless Tools using the WEP security level. Although WEP is a fragile security guard #xff0c; he is also the most popular.

Wireless Tools 設定是由一些主要的變數控制的。底下的設定檔說明所有你需要知道的東西。要牢記在心理的是不設定代表 "連結到訊號最強,未加密的 AP" we will always try and connect you to something.

Wireless Tools settings are controlled by a number of major variables. The following configuration files indicate everything you need to know. It's mental that you don't set up & #34; links to the most powerful & Xff0c; AP& #34; we will always try and connect you to something.

原始碼?4: 安裝 wireless-tools

# emerge net-wireless/wireless-tools

注意: 雖然你可以把設定存在 /etc/conf.d/wireless,但是指南中建議你存在 /etc/conf.d/net

重要: 需要查閱 變數名稱 文件。

原始碼?5: /etc/conf.d/net iwconfig 設定範例

# 使用 iwconfig 而不是 wpa_supplicant
modules=( "iwconfig" )

# 設定叫作 ESSID1 及 ESSID2 AP 的 WEP key
# 你最多可以設四個 WEP key,但是只有第一個有作用
# 所以我們用預設的索引 [1] 設定 [1] key
# 然後再把 [1] 設成使用的 key
# 我們這樣做讓你可以設定其他的 ESSID 使用一個以上的 WEP key
# key 前面加上 s: 代表是 ASCII key,不然的話 HEX key
# enc open 指定 open security (較安全)
# enc restricted 指定 restricted security (較不安全)
key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# 底下只在掃描可用 AP 時有用

# 有時候找到不只一個可以用的 AP
# 所以們要定義連線的優先順序
preferred_aps=( "ESSID1" "ESSID2" )

AP 選擇的詳細設定

你可以加上一些額外參數來做 AP 選擇的細部設定,但是一般來說這並不需要。

You can add some extra parameters to the detail of the AP selection & #xff0c; in general, this is not necessary.

你可以決定是不是只連到優先的 AP。預設如果每個設定都失敗了,會連線到未加密的 AP。這可以用 associate_order 變數控制。這是每個參數控制的說明。

You can decide whether or not to connect only to the preferred AP. The default is that if each setup fails xff0c; it connects to the unencrypted AP. This can be used as a variable control at associate_order. This is the description for each parameter control.

說明
any預設行為
preferredonly只會連到在優先列表上可見的 AP
forcepreferred即使掃描時沒找到,還是會依優先順序強制連到 AP
forcepreferredonly不要掃描 AP - 只依序連到每一個
forceanyforcepreferred 加上連到任何可見的 AP

最侯還有 blacklist_aps 及 unique_ap 選擇。blacklist_aps 和 preferred_aps 運作方法差不多。unique_ap 設定 yes 或 no 決定第二個無線網路介面可不可以連到同一個 AP。

At best, there are blacklist_aps and unique_ap options. Blacklist_aps and preferred_aps operate in the same way. Unique_ap sets yes or no determines whether the second wireless network interface can be connected to the same AP.

原始碼?6: blacklist_aps 及 unique_ap 範例

# 有時候你不想連到特定 AP
blacklist_aps=( "ESSID3" "ESSID4" )

# 如果你有一個以上的無線網路卡,你可以設定允不允許
# 每張卡連到同一個 AP
# 可以設定 "yes" 及 "no"
# 預設是 "yes"
unique_ap="yes"

Ad-Hoc 及 Master 模式

如果你想要在管理模式連線 AP 失敗時設定成 Ad-Hoc 模式,也可以做的到。

If you want to set the ad-Hoc mode & #xff0c; you can also do this if the management mode connection AP fails.

原始碼?7: 失敗後進入 ad-hoc 模式

adhoc_essid_eth0="This Adhoc Node"

要如何連到 Ad-Hoc 網路或是用 Master 模式執行,成為 AP?這裡就是這樣做的設定!你可能需要向下面這樣指定 WEP key。

How to connect to the Ad-Hoc network or run xff0c in Master mode; become APxff1f; this is the setup xff01; you may need to specify WEP key as below.

原始碼?8: ad-hoc/master 設定範例

# 設定模式 - 可以是 managed (預設),ad-hoc 或 master
# 不是全部裝置都支援所有模式
mode_eth0="ad-hoc"

# 設定介面的 ESSID
# 在 managed 模式,這除了強迫介面連到指定的 ESSID 外就沒其他的作用了
essid_eth0="This Adhoc Node"

# 如果沒有指定頻道的話,會使用頻道 3
channel_eth0="9"

重要: 底下是從 NetBSD 文件 中找到的 BSD wavelan 文件複製過來的。一共有 14 個頻道可以用:1-11 在北美是合法的,歐洲則是 1-13,法國是 10-13,日本只有 14。如果你不確定的話,請查閱你的卡或 AP 附的文件。確定你選的頻道和 AP 所使用的(或其他在 ad-hoc 網路中的卡)一樣。在北美及歐洲大部份賣出的網路卡是用頻道 3,法國則是 11,日本是 14。

Wireless Tools 疑難排解

有一些變數可以在裝置或環境有問題時,幫你啟動無線網路。這是你可以嘗試使用的變數列表。

This is the list of variables you can try to use.

變數預設值說明
iwconfig_eth0查看 iwconfig 手冊頁了解送到 iwconfig 設定的細節
iwpriv_eth0查看 iwpriv 手冊頁了解送到 iwpriv 設定的細節
sleep_scan_eth00在嘗試掃描前睡眠幾秒。當驅動程式/軔體在裝置可以使用前,要花一些使間啟動時使 用。
sleep_associate_eth05當介面從一個 AP 移到另一個 AP 時要等幾秒
associate_test_eth0MAC有些驅動程式在失去或嘗試連線時不會重設 MAC 位址到無效的, 有些驅動程式在失去或嘗試連線時不會重設 quality level。可以設定的值有 MAC,quality 和 all。
scan_mode_eth0一些驅動程式需要在 ad-hoc 模式掃描。所以如果掃描失敗了,試試看把他設成 ad-hoc
iwpriv_scan_pre_eth0在開始掃描前送一些 iwpriv 的指令。查閱 iwpriv 手冊頁取得更多資訊。
iwpriv_scan_post_eth0在掃描後送一些 iwpriv 的指令。查閱 iwpriv 手冊頁取得更多資訊。

4.d. 針對每一個 ESSID 做網路設定

有時候當你連到 ESSID1 時你會用固定 IP,而連到 ESSID2 時使用 DHCP。事實上大部份的模組指令可以針對不同的 ESSID 做設定。底下就說明如何設定。

Sometimes you use DHCP when you connect to ESSID1 with a fixed IP, and to ESSID2 with DHCP. In fact, most of the module commands can be configured for different ESSIDs.

注意: 在你使用 WPA Supplicant 或 Wireless Tools 時才有作用。

重要: 需要參閱 變數名稱文件。

原始碼?9: override network settings per ESSID

config_ESSID1=( "192.168.0.3/24 brd 192.168.0.255" )
routes_ESSID1=( "default via 192.168.0.1" )

config_ESSID2=( "dhcp" )
fallback_ESSID2=( "192.168.3.4/24" )
fallback_route_ESSID2=( "default via 192.168.3.1" )

# 我們也可以定義 DNS 還有其他東西
# 這意:如果沒有說的話,DHCP 會覆蓋這些設定
dns_servers_ESSID1=( "192.168.0.1" "192.168.0.2" )
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# 由 AP 的 MAC 位址來區別
# 在你到別的地方,但是確有相同的 ESSID 時很有用
config_001122334455=( "dhcp" )
dhcpcd_001122334455="-t 10"
dns_servers_001122334455=( "192.168.0.1" "192.168.0.2" )

5. 新增功能

5.a. 標準函數連結

有四個定義好的函數在 start/stop 動作時會啟動。這些函數開頭都是網路介面的名稱,以便控制多個網路介面。

Four defined functions are activated during start/ stop actions. These are started by the name of the network interface xff0c; in order to control multiple network interfaces.

preup 和 predown 函數應該回傳 0,表示接下來的介面設定或取消設定可以繼續,如果 preup 回傳不為 0 的數值,會結束網路介面的設定。如果 predown 回傳不為 0 的數值,將會不允許繼續這個網路介面的取消設定。

The preup and predown functions should return 0xff0c; indicate that the next interface settings or unset settings can continue xff0c; if preup returns values not 0 xff0c; end the network interface settings. If predown returns values not xff0c; will not be allowed to continue the network interface unset.

postup 及 postdown 函數會忽略回傳值,因為如果他們有錯誤的話,也沒有什麼要做的。

The postup and postdown function ignores the return value xff0c; because if they are wrong xff0c; there is nothing to do.

${IFACE} 是設成要啟動/關閉的網路介面。${IFVAR} 是把 ${IFACE} 轉換成 bash 可以接受的變數名稱。

is a network interface designed to start/disable. is the conversion of to an acceptable bash variable name.

原始碼?1: pre/post up/down function 範例

preup() {
  # 在啟動前測試網路線是否已接上。
  # 這只在某些網路卡有作用,並且需要安裝 mii-diag 套件
  if mii-tool ${IFACE} 2> /dev/null | grep -q 'no link'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # 在啟動前測試網路線是否已接上。
  # 這只在某些網路卡有作用,並且需要安裝 ethtool 套件
  if ethtool ${IFACE} | grep -q 'Link detected: no'; then
    ewarn "No link on ${IFACE}, aborting configuration"
    return 1
  fi

  # 記得回傳 0 代表成功
  return 0
}

predown() {
  # script 中預設的是測試是否使用 NFS 當作根目錄,在這種情況不允許停止網路介面。
  # 注意如果你指定一個 predown() 函數,會蓋掉這個判斷。底下就是這個
  #script,如果你還需要他的話...
  if is_net_fs /; then
    eerror "root filesystem is network mounted -- can't stop ${IFACE}"
    return 1
  fi

  # 記得回傳 0 代表成功
  return 0
}

postup() {
  # 這個函數的用處例如說註冊動態 DNS 服務。
  # 另一個例子是在網路卡啟動後傳送/接收郵件。
       return 0
}

postdown() {
  # 這個函數只是為了完整放在這裡...
  # 我還沒想到什麼巧妙的事情可以做的 ;-)
  return 0
}

5.b. 無線網路函數連結

注意: 這對 WPA Supplicant 不能工作 - 但是 ${ESSID}${ESSIDVAR} 變數在 postup() 函數內可以用。

這裡定義兩個結合函數在相關的函數附近被呼叫。這些函數開頭都是網路介面的名稱,以便控制多個網路介面。

This defines two joint functions that are called near the related functions. These functions start with the name of the network interface & #xff0c; in order to control multiple network interfaces.

preassociate 函數應該回傳 0,表示接下來的介面設定或取消設定可以繼續,如果 preup 回傳不為 0 的數值,會結束網路介面的設定。如果 predown 回傳不為 0 的數值,將會不允許繼續這個網路介面的取消設定。

The preassociate function should return 0xff0c; indicate that the next interface settings or unset settings can continue xff0c; if preup returns a value xff0c that is not 0 ; if predown returns a value xff0c that is not 0 ; if predown returns a value xff0c; will not be allowed to continue the network interface's unset.

postassociate 函數會忽略回傳值,因為如果他們有錯誤的話,也沒有什麼要做的。

The postassociate function ignores the return value xff0c; because if they are wrong xff0c; there is nothing to do.

${ESSID} 是設成你連線 AP 的 ESSID。${ESSIDVAR}${ESSID} 轉換成 bash 可以接受的變數名稱。

is an ESSID set up to connect to your AP. is to convert to an acceptable ash variable name.

原始碼?2: pre/post 結合函數

preassociate() {
  # 底下加了 leap_user_ESSID 及 leap_pass_ESSID 兩個變數
  # 當這些都對你要連線的 ESSID 設好後,執行 CISCO LEAP script

  local user pass
  eval user=/"/$/{leap_user_${ESSIDVAR}/}/"
  eval pass=/"/$/{leap_pass_${ESSIDVAR}/}/"

  if [[ -n ${user} && -n ${pass} ]]; then
    if [[ ! -x /opt/cisco/bin/leapscript ]]; then
      eend "For LEAP support, please emerge net-misc/cisco-aironet-client-utils"
      return 1
    fi
    einfo "Waiting for LEAP Authentication on /"${ESSID}/""
    if /opt/cisco/bin/leapscript ${user} ${pass} | grep -q 'Login incorrect'; then
      ewarn "Login Failed for ${user}"
      return 1
    fi
  fi

  return 0
}

postassociate() {
  # 這個函數只是為了完整放在這裡...
    # 我還沒想到什麼巧妙的事情可以做的 ;-)
	
  return 0
}

注意: ${ESSID}${ESSIDVAR} 在 predown() 還有 postdown() 函數不能使用

6. 網路管理

6.a. 網路管理

如果你和你的電腦經常在移動,你可能會沒有網路線或無線網路可以用。而且,你可能希望在你插上網路線或是找到無線網路時網路自動啟動。

If you and your computer often move xff0c; you may not have Internet or wireless access. And xff0c; you may want the network to start automatically when you plug in or find a wireless network.

這裡你可以找到一些幫你完成的工具。

Here you can find some tools to help you finish.

注意: 這份文件只介紹 ifplugd,但時還有其他像 quickswitch 的工具你可以參考。

6.b. ifplugd

ifplugd 是一個在網路線接上或拔掉時自動啟動,停止網路介面的服務。他也會在新的無線網路結點在範圍內時幫你管理無線網路。

ifplugd is a service that automatically starts #xff0c when connected to or pulled out of the network; stops the network interface. He will also help you manage the wireless network when new wireless links are located.

原始碼?1: 安裝 ifplugd

# emerge sys-apps/ifplugd

設定 ifplugd 相當的直觀。設定檔是放在 /etc/conf.d/ifplugd。執行 man ifplugd 取得詳細的變數資訊。

Configures ifplugd to be quite straightforward. The profile is set at . Run

原始碼?2: ifplug 設定範例

# 設定要監視的介面
INTERFACES="eth0"

AUTO="no"
BEEP="yes"
IGNORE_FAIL="yes"
IGNORE_FAIL_POSITIVE="no"
IGNORE_RETVAL="yes"
POLL_TIME="1"
DELAY_UP="0"
DELAY_DOWN="0"
API_MODE="auto"
SHUTDOWN="no"
WAIT_ON_FORK="no"
MONITOR="no"
ARGS=""

# 對某個介面加上 ifplugd 的額外參數
# 注意當像這樣的變數設定時,全域變數會被忽略
# 
MONITOR_wlan0="yes"
DELAY_UP_wlan0="5"
DELAY_DOWN_wlan0="5"
美化布局示例

欧易(OKX)最新版本

【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   全球官网 大陆官网

币安(Binance)最新版本

币安交易所app【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址

火币HTX最新版本

火币老牌交易所【遇到注册下载问题请加文章最下面的客服微信】永久享受返佣20%手续费!

APP下载   官网地址
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
平台列表
美化布局示例

欧易(OKX)

  全球官网 大陆官网

币安(Binance)

  官网

火币(HTX)

  官网

Gate.io

  官网

Bitget

  官网

deepcoin

  官网
热门文章
  • 0.00015693个比特币等于多少人民币/美金

    0.00015693个比特币等于多少人民币/美金
    0.000 15693比特币等于多少人民币?根据比特币对人民币的最新汇率,0.000 15693比特币等于10.6 1678529美元/76.86554996人民币。比特币(BTC)【比特币价格翻倍】美元(USDT)人民币(CNY)0.000/克洛克-0/5693【数字货币矿机】10.6 167852976.8655254996比特币对人民币的最新汇率为:489,807.72 CNY(1比特币= 489,807.72人民币)(1美元=7.24人民币)(0.00015693 U...
  • 0.00003374个比特币等于多少人民币/美金

    0.00003374个比特币等于多少人民币/美金
    0.00003374比特币等于多少人民币?根据比特币对人民币的最新汇率,0.00003374比特币等于2.2826 1222美元/16.5261124728人民币。比特币(BTC)美元(USDT)人民币(CNY)0.00003374克洛克-0/22216.5261124728比特币对人民币的最新汇率为:489807.72 CNY(1比特币=489807.72人民币)(1美元=7.24人民币)(0.00003374USDT=0.0002442776 CNY)。汇率更新于2024...
  • A股利好!证监会连开三场座谈会!五部门发文 事关元宇宙…周末影响一周市场的十大消息(新股+点评)

    A股利好!证监会连开三场座谈会!五部门发文 事关元宇宙…周末影响一周市场的十大消息(新股+点评)
    1   证监会连开三场座谈会!将研究出台更多务实、管用的政策举措 The SEC will hold three talks! More practical and practical policy initiatives will be developed.   近日,中国证监会就活跃资本市场、提振投资者信心召开三场座谈会,分别听取专家学者和投资者意...
  • 2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?

    2000年美国GDP占世界的304%,中国GDP仅占35%,现在呢?
    GDP作为全球公认的实力基准,就像是一个大国实力的代言人,它是布雷顿森林体系下全球团结的声音。它不仅仅是数字的累积,更是大国综合实力的人格化,默默诉说着每个国家的辉煌与荣耀。虽然GDP不是衡量一个国家综合实力的唯一标准,但无疑是最关键的指标之一。作为一面镜子,它反映了国家的经济实力和发展水平,是国家综合实力的重要体现,不容忽视。2000年,中国GDP迈过/克洛克-0/万亿美元的重要门槛,达到/克洛克-0/。2/克洛克-0/万亿美元(折合人民币7。7万亿元)。然而,在全球经济的...
  • 1929经济大萧条或许即将重演?

    1929经济大萧条或许即将重演?
    人类似乎陷入了一个历史悖论,即我们总是重复同样的错误,无法真正从过去的错误中吸取教训。近年来,我们对世界各地接连不断的挑战和危机深感不安。20 19年突如其来的疫情,乌克兰的战火硝烟,欧洲的天然气供应危机以及全球少数国家的饥荒,所有这些问题都像洪水一样,一个接一个地涌来。如果你今天感到心情沉重,不要失去希望,因为明天可能会带来更严峻的挑战。首先,让我们深入讨论名为1929大萧条的时期。这场大萧条实际上是指从1929到1933的一场影响深远的经济危机。这场危机首先起源于美国,然...
标签列表