nx-F6301-ch16軟體的安裝升級與移除

Download Report

Transcript nx-F6301-ch16軟體的安裝升級與移除

第 16 章
軟體的安裝、
升級與移除
著作權所有 © 旗標出版股份有限公司
本章大綱






16-1 利用套件管理員安裝與移除套件
16-2 使用套件升級程式線上更新套件
16-3 以 RPM 指令管理套件
16-4 使用 Yum 線上安裝、移除與更新套件
16-5 Linux 軟體下載網站
16-6 如何安裝自行下載的軟體
2
前言

以前在 Unix/Linux 作業系統要安裝軟體, 往
往都需要用文字模式的 make 指令來編譯
程式, 安裝過程稍嫌繁雜, 而且不易使用。
因此, 本 Linux 發行版內附了套件管理員與
套件升級程式, 提供使用者高度親和力的圖
形介面, 讓安裝/移除/升級軟體都不再是難
事了!
3
前言


在圖形工具的底層, 本發行版軟體管理核心
是一個開放原始碼的套件管理系統 RPM
(Red Hat Package Manager), 此外也提供
了一個文字介面的套件管理工具 Yum。
本節會逐一說明如何使用這些圖形與文字
模式工具, 輕鬆地管理軟體, 而最後也會說
明如何使用傳統的 make 指令編譯與安裝
程式。
4
1 6 - 1 利用套件管理員安裝與
移除套件

此 Linux 發行版內附了一個圖形化的套件管
理員, 可以透過網路輕鬆地安裝或移除系統
內的套件, 讓您管理套件時更加容易。
 套件管理員後端使用 Yum 運作, 預設會從
國外網站下載套件, 如果您想要改用台灣
網站, 請參考 16-23 頁的說明, 變更 Yum
的儲藏庫位置。
5
16-1-1 開啟套件管理員檢視
安裝的套件

請按應用程式鈕, 執行 『Add/Remove
Software』 命令, 即可開啟套件管理員視
窗:
6
16-1-1 開啟套件管理員檢視
安裝的套件
7
16-1-2 安裝與移除套件


使用套件管理員安裝與移除套件的方法非
常容易, 並且可以一次完成, 只要用滑鼠勾
選要裝的套件, 並且取消勾選要移除的套件
即可。
以下我們以安裝PostgreSQL 資料庫並移除
DNS 名稱伺服器為例, 說明安裝與移除套件
的步驟:
8
16-1-2 安裝與移除套件
9
16-1-2 安裝與移除套件
10
16-1-2 安裝與移除套件
11
16-1-2 安裝與移除套件


套件管理員擁有智慧化機制, 安裝軟體套件
時會判斷相依性問題, 然後自動從網路下載
必要的套件檔。
同樣的, 套件管理員移除套件時也會按照相
依性, 自動移除所有相關套件。所以使用這
個工具, 即可避免以前使用 rpm 指令時, 經
常會遇到套件相依性而傷透腦筋的狀況。
12
16-1-2 安裝與移除套件

請在上圖按繼續鈕繼續進行新增或移除的
程序:
13
16-1-2 安裝與移除套件
14
Fedora Extras 套件儲藏庫


除了光碟片內的軟體以外, Fedora Core 官
方網站也有一個稱為 『Fedora Extras』
的套件儲藏庫, 包含了許多光碟內放不下的
軟體, 如 ClamAV 防毒軟體、snort 入侵偵
測程式、xmms 音樂播放軟體...等。
這些增強性套件也都可以藉由套件管理員,
統一透過網路來安裝與移除。所以 Fedora
Core 具備了相當強大的擴充性, 功能不會
只侷限於光碟內的軟體。
15
16-1-3 搜尋軟體套件

如果您想要尋找 Fedora Core 目前有什麼
套件可用, 或是已經安裝哪些與某方面相關
的套件, 請如下使用關鍵字進行搜尋:
16
16-1-3 搜尋軟體套件
17
16-1-3 搜尋軟體套件
A
B
C
D
綠色打勾圖示代表該套件目前已經安裝, 空
白表示尚未安裝
這個標示意指該套件已被使用者取消勾選,
即將被移除
此標示代表該套件被使用者勾選, 將會被安
裝至系統中
可以在此處勾選或取消勾選套件, 進行安裝
或移除
18
16-1-4 列出已安裝、可用或是
所有套件

若要列出系統中已安裝與可安裝套件, 或是
想要列出所有套件, 可以如下操作:
19
16-1-4 列出已安裝、可用或是
所有套件
20
1 6 - 2 使用套件升級程式線上
更新套件


在正式版推出後, 有時仍會發現某些套件無
法正常執行, 甚至有安全上的疑慮, 因此官
方網站會不斷地釋出修正後的套件。本發
行版內建了好用的套件升級程式, 可以方便
地偵測並線上更新系統中的套件。
與 16-1 節介紹的套件管理員相同, 套件升
級程式也具備了智慧化機制, 會依照相依性
自動下載並更新相關套件。
21
1 6 - 2 使用套件升級程式線上
更新套件

請按應用程式鈕, 執行 『系統工具
Software Updater』 命令, 即可開啟套件
升級程式對話窗:
22
1 6 - 2 使用套件升級程式線上
更新套件
23
1 6 - 2 使用套件升級程式線上
更新套件
24
1 6 - 2 使用套件升級程式線上
更新套件
25
1 6 - 2 使用套件升級程式線上
更新套件
26
1 6 - 3 以 RPM 指令管理套件


RPM 的全名是 Red Hat Package Manager,
它是由 Red Hat 公司所開發的一個開放性
程式套件管理系統。
由於 Red Hat 公司鼓勵其他開發廠商以此
格式發行他們的軟體, 因此目前 RPM 除了
可以在本 Linux 發行版上運作外, 也可以在
許多其他的 Linux 發行版及 Unix 平台上執
行。
27
16-3-1 rpm 指令概念說明

為了讓讀者易於區別, 底下我們將整個
RPM 套件管理系統簡稱為 RPM, 將管理
RPM 套件管理系統的程式稱為 rpm 程式或
rpm 指令, 而將能夠被 rpm 程式處理的安裝
套件稱為 RPM 套件。其關係可用下圖表示:
28
16-3-1 rpm 指令概念說明
29
16-3-1 rpm 指令概念說明

1.
2.
3.
4.
使用 RPM 套件管理系統具有下列優點,
而這也是 RPM 套件管理系統的設計目標:
易於安裝、升級與移除套件
有強大的查詢功能
能夠進行套件驗證
支援套件以原始碼形式發行
30
1. 易於安裝、升級與移除套件


安裝傳統 tar.gz 等格式的壓縮套件時, 必須
先將其解開壓縮到一個目錄中 , 然後再執行
安裝的程序。而各套件的安裝方式又有所
差異, 有的要再編譯原始碼, 有的要指定安
裝的參數, 實在頗為麻煩。
RPM 套件則將安裝需要的設定項目準備好,
只要執行 rpm 指令, 就可以安裝、升級套件,
或移除已安裝的套件。
31
2. 有強大的查詢功能

透過 RPM 的組態資料庫, 我們可以查詢系
統已安裝的套件;也可以查詢某個檔案是
屬於哪個套件, 而此套件又來自何處。
32
3. 能夠進行套件驗證


RPM 提供套件驗證的功能, 您可藉以驗證
是否誤刪了某個套件中的檔案。
而且 RPM 在安裝時會保留原來的設定檔,
所以即使誤刪檔案, 重新安裝也不必擔心遺
失原來的設定。
33
4. 支援套件以原始碼形式發行

RPM 支援套件以原始碼的形式發行, 在
RPM 套件中能包含原始程式、更新程式
patch 及完整的建構指令。因此我們在取得
一個程式的更新版時, 可以先看看程式的更
新部分, 再採取適當的行動。
34
16-3-2 rpm 指令的操作方法


RPM 套件通常以 xxx.rpm 的格式命名, 例
如 rhviewer-3.10a-13.i386.rpm。其中包含
了套件名稱 (rhviewer)、版本 (3.10a)、次
版本 (13) 及平台 (i386), 不過並不是所有套
件的作者都會根據這個格式來命名。
除了建構安裝套件外, rpm 指令具有 5 種基
本的操作模式, 包含套件的:安裝、移除、
升級、查詢及驗證。我們可以使用 rpm -help 指令獲得完整的細節及參數:
35
16-3-2 rpm 指令的操作方法

讀者要注意的是:在安裝、移除及更新套
件時, 必須取得 root 的權限, 而查詢及驗證
套件時則不用。
36
套件安裝

使用 rpm 指令的安裝模式可以將套件內
所有的元件放至系統中的正確路徑, 安裝套
件的指令是:

以此指令安裝時, 會顯示套件的名稱 (不一
定會與檔名相同), 並顯示 # 號以指示安裝
程序正在進行中。
37
套件安裝

rpm 指令還能透過 FTP 或 HTTP 來進行遠
距的套件安裝或查詢。使用方式與在本機
上並無太大不同, 只要在檔案前加上適當的
URL 位址即可, 例如:

在安裝套件時, 有時會出現要安裝的套件已
經安裝過、某個檔案已被其他的套件安裝,
或是不同套件之間有相依性的問題, 以下分
別詳細說明。
38
重複安裝套件

要重複安裝一個原本就已經安裝的套件時,
rpm 指令會顯示出類似下面的錯誤訊息:

如果您確定要安裝此套件, 可以在命令列中
加上 --replacepkgs 參數, 使rpm 指令忽略
錯誤訊息, 取代原有套件:
39
套件中某個檔案已被其他套件
安裝

如果要安裝的套件中, 有某個檔案已被其他
套件安裝於系統中, 則 rpm 指令會顯示錯誤
的訊息:

要 rpm 指令忽略此訊息直接取代舊檔案, 可
使用 --replacefiles 參數:
40
不同套件之間的相依性

有些 RPM 套件會與其他的 RPM 套件有相
依性, 這些套件通常要別的套件已先安裝於
系統中才能正常執行。當您試圖要安裝這
類 RPM 套件, 則 rpm 指令會列出其所需的
相關套件:
41
不同套件之間的相依性

比較好的解決方式是將其所需要的套件先
安裝好, 以上例來說, 先安裝rhviewer 套件
之後, 再安裝 rhpainter 套件即可。此外, 也
可以加上 --nodeps 參數來略過相依性檢查,
不過這樣強行安裝的結果可能會使套件不
能正常執行。
42
套件移除

移除模式會將指定的套件元件全部刪除, 但
會保留已更改過的設定檔。移除 RPM 套件
的指令如下:

讀者要注意的是, 這裡必須使用套件的名稱
"rhviewer" 或 "rhviewer-3.10a-13", 而不是
使用當初安裝套件時所用的檔名 "rhviewer3.10a-13.i386.rpm"。
43
套件移除

如果在移除套件時出現類似下列訊息, 代表
移除套件會破壞其他套件的套件相依性:

此時您必須先移除 rhpainter 套件後, 才能
接著移除 rhviewer。或者您也可以使用 -nodeps 參數, 即可忽略此訊息而強行移除
套件, 不過這樣可能會導致其他套件無法正
常執行。
44
套件升級

升級模式會安裝使用者所指定的更新版本,
並移除已安裝於系統中的相同套件。升級
套件的指令如下:

升級模式的運作方式是將系統中的舊版本
移除, 再安裝新版本。您也可以使用升級模
式取代安裝模式來安裝新版本。因為在沒
有舊版本的情況下, 使用 -U 這個參數仍可
正常運作。
45
套件升級

以 rpm 指令升級套件時, 如果有舊版的套件
存在於系統中, 則會看到如下的訊息:

這是 rpm 指令特有的設定檔智慧型升級訊
息。因為有些套件的設定檔格式在不同版
本間並不相容, 因此 rpm 指令會將舊的設定
檔加 .rpmsave 副檔名儲存, 並安裝新的設
定檔, 您可以在套件安裝後立即比較新舊設
定檔, 以決定是否要換回原來的設定。
46
套件升級

升級模式下的錯誤除了包含移除與安裝模
式下的錯誤外, 還有一個比較特別的是, 當
使用者試圖安裝一個比現有套件更舊的套
件時, 會顯示如下訊息:

若決心要將套件 "升級" 到較舊的版本, 可使
用 --oldpackage 參數:
47
套件更新

前面所講 rpm 指令的 5 種工作模式中, 並不
包含更新模式, 主要是因為更新模式可算是
升級模式的另一種使用方式。更新套件的
指令如下:

rpm 指令在更新模式下會檢查在指令列中
所指定的套件是否比系統中原有的套件來
得新。如果情況屬實, rpm 指令會自動更新
指定套件。反之, 若系統中並沒有指定套件
的較舊版本, rpm 指令並不會安裝此套件。
48
套件更新



而在升級模式下, 不管系統中是否有較舊的
版本, rpm 指令都會安裝指定的套件。
如果您從網路下載了許多的套件, 且想更新
所有已經安裝在系統中的套件 (未曾安裝的
套件則不安裝), 可以執行以下指令:
如此 RPM 就會為我們更新所有系統中已存
在的套件。
49
套件查詢

想要取得 RPM 套件的相關資訊可以使用查
詢模式, 使用 -q 參數可查詢一個已安裝的
套件內容。如執行 rpm -q rhviewer 指令將
顯示 rhviewer 套件的套件名稱、版本及次
版本:
50
套件查詢

在查詢模式中可用套件指定參數配合查詢:

也可以再加上資訊選擇參數來決定所要顯示
的資訊:
51
套件查詢
52
套件查詢

我們可以結合 -qi 參數得到一般性套件資訊:

對於顯示檔案列表的 -l 參數, 還可加上 -v 參數
以獲得較完整的資訊, 其輸出格式類似 ls -l 指
令的結果。
53
套件驗證


要驗證目前系統中的檔案是否與原始套件
相符, 可使用驗證模式。-V 參數可用來驗證
套件的正確性。驗證模式會比較原始套件
資訊及目前系統中的檔案資訊, 包括每個檔
案的大小、MD5 (一種加密方式)
checksum、權限、型別、擁有者及所屬的
檔案群組。
在驗證模式中也可以使用上一節所提到的
套件指定參數來指定特別的套件。例如:
54
套件驗證

在上例中前 3 個指令會比較 RPM 組態資料
庫與目前系統中的檔案;而第4 個指令則是
比較原始 .rpm 檔的內容與目前系統中的檔
案, 適用於 RPM 組態資料庫毀損或遭人修
改的狀況下。
55
套件驗證

在驗證後沒有任何輸出, 表示套件正常。如
有不一致的地方, RPM 會顯示錯誤碼。下
表列出可能的錯誤碼及其代表的意義:
56
16-3-3 rpm 指令常用的查詢實例
這裡舉幾個例子, 加深您對 rpm 指令的了解:
 查詢套件所安裝的檔案:安裝某個套件之後,
常常困擾人的是, 不曉得這個套件究竟被裝
到哪裡去。此時只要執行 rpm -ql 套件名稱
指令即可, 例如:
57
16-3-3 rpm 指令常用的查詢實例



查詢是否刪除套件檔案:當您誤刪了某些檔案,
又不知道到底刪掉些什麼時, 只要執行 rpm Va 指令即可對系統做完整的套件驗證, 得知是
否刪除了某些套件檔案。
查詢檔案屬於哪個套件:遇到一些不認得的檔
案, 想要知道這個檔案是否屬於某個套件, 可執
行 rpm -qf /完整路徑/檔案名稱 指令查詢。
驗證套件的正確性:上兩個例子可以結合使用,
例如您懷疑某個程式 (如 vi) 有問題, 而想對該
程式進行驗證, 可以執行 rpm -Vf /bin/vi 指令。
58
16-3-3 rpm 指令常用的查詢實例

查詢套件的相關說明文件:想要取得某個
程式套件 (如 ispell) 的更多資訊, 可執行
rpm -qdf /usr/bin/ispell 以得知這個程式所
屬的說明文件有那些, 其輸出如下:
59
16-3-4 如何解決套件相依性及
查詢未安裝檔案所屬套件

若您安裝此 Linux 發行版時, 不是選擇安裝
所有的套件;或是自行從網路下載了各種
套件 , 在安裝這些套件時, 常常會遇到一些
相依性的問題。例如, 筆者欲安裝書附光碟
中的 PHP 套件, 可能會遇到以下狀況:
60
16-3-4 如何解決套件相依性及
查詢未安裝檔案所屬套件


為了正確安裝 PHP 套件, 必須先安裝缺少的
檔案, 但是要怎麼知道安裝哪些套件才會有
這 2 個檔案呢?您可至 http://rpmfind.net/ 分
別搜尋 “libcurl.so.3”、“php-pear” 這些關
鍵字, 由搜尋結果可以得知它們分別屬於
curl、phppear 套件。
如此您只要由光碟或網站中取得此 2 個套件,
先行安裝即可。不過, 在安裝這些套件的過
程中, 可能還會遇到其他套件相依性的問題。
此時, 同樣請依此方法解決。
61
16-3-4 如何解決套件相依性及
查詢未安裝檔案所屬套件

有時候兩個套件之間可能會發生互相需要
的情形, 例如前面筆者安裝 PHP 套件時,
rpm 指令要求先行安裝 php-pear 套件, 可
是當筆者安裝 php-pear 套件, 卻又顯示需
要 PHP 套件:
62
16-3-4 如何解決套件相依性及
查詢未安裝檔案所屬套件

這樣不就發生無解的無限迴圈嗎?此時請
將這兩個 RPM 套件檔放在同一個目錄內,
如下使用萬用字元同時安裝即可:
63
1 6 - 4 使用 Yum 線上安裝、
移除與更新套件


Yum (Yellow dog Updater, Modified) 為此
Linux 發行版內建的強大套件管理工具, 具
有線上安裝、移除、與更新套件的功能, 其
最為人稱道的特點在於它能自動判斷並解
決 RPM 套件的相依性問題。
Yum 可說是全自動化的套件管理工具, 可以
幫我們省下不少安裝與更新套件的時間。
64
變更 Yum 的套件儲藏庫


Yum 預設使用 Fedora Core 的官方網站為
套件的儲藏庫 (Repository), 當您想要使用
yum 指令安裝某個套件時, 只要指定套件名稱,
Yum 就會自動到儲藏庫下載該套件檔, 並且
會同時尋找其他需要的檔案一起下載, 然後再
進行安裝。
由於 Fedora Core 的官方網站位於美國, 其他
國家使用者連線時的網路速度可能不佳, 加上
全世界可能同時有上千台主機需要下載檔案,
所以網路塞車的情形大概是無法避免的。
65
變更 Yum 的套件儲藏庫


筆者建議將儲藏庫改為距離您最近的映射
站, 增加檔案下載的效率, 同時也能減少官
方網站的負荷。
在此筆者將 Fedora Core 的套件儲藏庫位
置, 指定到台灣的映射站。首先開啟
/etc/yum.repos.d/fedora-core.repo 檔並如
下修改:
66
變更 Yum 的套件儲藏庫
67
變更 Yum 的套件儲藏庫

接著請開啟 /etc/yum.repos.d/fedoraupdates.repo 檔並如下修改:
68
變更 Yum 的套件儲藏庫

最後請開啟 /etc/yum.repos.d/fedoraextras.repo 檔案, 如下修改:
69
使用 Yum 線上安裝套件

使用 yum 指令安裝套件的語法如下:

筆者以安裝 PHP 套件為例, 為您示範 yum
指令的線上安裝功能:
70
使用 Yum 線上安裝套件
←安裝 php 套件
71
使用 Yum 線上安裝套件
72
使用 Yum 線上安裝套件
73
使用 Yum 線上安裝套件

使用 yum 指令安裝套件是不是很輕鬆又簡單
呢?今後就不需要辛苦地尋找套件在哪一片
光碟, 也不用再為了相依性問題而煩惱了!
74
使用 Yum 移除套件

使用 yum 指令移除套件的語法如下:

筆者以移除 httpd 套件為例, 為您示範 yum
指令移除套件的功能:
75
使用 Yum 移除套件
76
使用 Yum 移除套件

使用 yum 指令移除套件和安裝套件一樣輕
鬆簡單。如果使用 rpm 指令, 要手動先行移
除 10 個套件, 然後才能移除 httpd 套件, 兩
者的效率比較起來, 真是天與地的差別啊!
77
使用 Yum 查詢與搜尋套件

使用 yum 指令時只需要指定名稱便可以安
裝套件, 不過要如何知道有哪些套件可以安
裝呢?如果您要查詢目前系統未安裝, 但是
儲藏庫內有的套件, 請如下操作:
78
使用 Yum 查詢與搜尋套件
79
使用 Yum 查詢與搜尋套件


如果您想要查詢該套件的介紹時, 則執行
yum info 套件名稱 即可觀看套件介紹。
當您不清楚套件名稱時, 可以使用關鍵字搜
尋套件, 語法為 yum search 關鍵字。例如
筆者要想尋找與 DNS 相關的套件, 便可執
行 yum search DNS 指令搜尋。
80
使用 Yum 線上更新套件

yum 指令更新套件的語法為:

在更新套件前, 可執行下面指令檢查目前系
統中是否有需要更新的套件:
81
使用 Yum 線上更新套件

看來已經有很多套件需要更新了, 筆者以更
新 bind 套件為例, 為您解說如何更新套件:
82
使用 Yum 線上更新套件
83
使用 Yum 線上更新套件

若您想要一次更新系統內所有套件, 則可以
執行下面指令:

Yum 還提供了自動更新的功能, 每天深夜主
動檢查並下載新版本的套件加以更新。如
果您想要使用此功能, 請執行下面指令開啟:
84
使用 Yum 線上更新套件

若想要關閉自動更新功能, 則請執行
/etc/rc.d/init.d/yum stop; chkconfig yum off。
85
實務經驗談


自動更新的功能乍看之下對管理者非常方
便, 其實卻隱藏了相當大的危險性。因為即
使舊版本套件可以正常運作, 並不代表新版
本也一定正常, 而且新舊版本軟體的設定檔
格式可能也不太相同。
所以您的主機可能會在更新版本後, 開始發
生問題, 特別是核心或 glibc 等系統重要套
件一旦出錯, 更可能造成系統當機, 甚至再
也無法開機!
86
實務經驗談


一個很重要的例子便是 2003 年 4 月時,
Red Hat 公司釋出了一個 glibc 的更新套件
檔, 該套件檔存在一些缺陷, 因此造成了許
多 Red Hat Linux 9 的主機無法正常運作。
詳細的事件經過請參考
https://bugzilla.redhat.com/bugzilla/show_
bug.cgi?id=88456 。
因此若您的主機正負責非常重要的工作, 絕
不容許任何問題發生, 筆者建議不要使用自
動更新功能, 所有新版的套件先在其他不重
要的主機上測試後, 再裝在重要主機上。
87
實務經驗談

如果您不想啟用自動更新功能, 但是希望能
收到目前系統有套件需要更新的通知, 請以
root 身份執行 crontab -e, 加入下列內容 (請
輸入為一行):

如此有新的套件時, 系統便會自動寄發信件
到 root 的信箱。
88
1 6 - 5 Linux 軟體下載網站


您常常為了 Linux 上是否有某個功能的
軟體而煩惱?本節將介紹何處可下載 Linux
上的應用程式。
當您腦中出現 "在 Linux 上若是有這種軟體
該有多好啊!" 的念頭時, 恰巧又會寫程式,
千萬不要捲起袖子就開始寫了。除非您非
常有創意, 否則在您想到之前, 可能早就有
人想到且開始實做了。因此您不需要重複
發明輪胎, 筆者在此介紹 2 個大型的軟體開
發專案網站:
89
1 6 - 5 Linux 軟體下載網站
http://sourceforge.net
 http://freshmeat.net
這 2 個網站裡面有許多的開發專案在進行,
您只要輸入想找的關鍵字搜尋, 或是依照分
類尋找, 通常都可以找到您想要的軟體, 而
且大都不只一個。
上面提到的網站, 有時某軟體專案只提供原
始碼下載, 若您想尋找是否有RPM 套件, 可
到 http://rpmfind.net/ 搜尋, 因為可能有其他
的發行版或是熱心人士將它包裝成 RPM 套
件了。



90
1 6 - 6 如何安裝自行下載的軟體


通常您所下載的軟體多為 Tarball (tar.gz
或 tgz) 或 RPM 格式, 本節將說明如何安裝這
些檔案。
若您下載的是 RPM 版本套件, 請參考 16-3-2
節的方式安裝。若您下載的是 Tarball 格式,
請注意檔案解開之後, 有下列 2 種檔案格式:
 原始碼格式:軟體以原始碼方式散播, 通常
以 C 或 C++ 等程式語言寫成。您需要安裝
gcc 及 make 等套件才可編譯程式。至於編
譯及安裝的方式, 請參考該程式目錄下的
README 或 INSTALL 說明檔。
91
1 6 - 6 如何安裝自行下載的軟體

執行檔格式:軟體以執行檔 (二進位) 的
方式散播, 因此下載時, 請注意您的作業
系統版本及 CPU 種類。以 Apache 軟體
為例, 除了提供原始碼下載之外, 也提供
了執行檔下載。執行檔以 CPU 區分成
i686 (IBM 相容 PC)、PowerPC (如麥金
塔)... ;而 Linux 作業系統的類別中, 分別
對 Red Hat Linux 及 Slackware Linux 做
了最佳化。至於安裝的方式, 請參考該程
式目錄下的說明檔。
92
1 6 - 6 如何安裝自行下載的軟體

下面筆者以下載 lsalarm (一個可定時播放
音樂檔的鬧鐘程式) 的原始碼為例, 來說明
如何編譯及安裝。首先請到
http://ltsword.allegronetwork.com/?page=7,
點選 Linux tarball 旁邊的連結下載程式的
原始碼。下載完成之後, 請如下操作:
93
1 6 - 6 如何安裝自行下載的軟體

瀏覽 README 說明檔之後, 我們得知編譯
及安裝步驟分為下列 3 部分 (大致上原始碼
的安裝程式都是如此, 但請仍以說明檔為主):
94
1 6 - 6 如何安裝自行下載的軟體
1. ./configure:執行程式目錄下的指令稿, 偵
測目前系統的環境, 及產生編譯程式時所需
的相關設定檔。若加上 --prefix 參數可以指
定要將程式安裝在何處。
2. make:編譯程式。
3. make install:安裝編譯好的程式, 需以
root 身份執行。
95
1 6 - 6 如何安裝自行下載的軟體

因此執行以下指令編譯及安裝:

安裝好後, 在 /tmp/lsalarm 的 bin 目錄下,
有一個名為 lsalarm 的執行檔, 請執行
/tmp/lsalarm/bin/lsalarm & 指令, 即可啟動
鬧鐘程式。
96