歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux自由軟件的安裝

Linux自由軟件的安裝

日期:2017/2/27 14:14:14   编辑:更多Linux
  一、自由軟件的結構 一個自由軟件的發行版本,總是有相同的文件結構,它通常包含下面幾個文件: INSTALL: 說明安裝程序。 README: 關於這個程序的一般性信息(簡介,作者,下載文件的地址,相關文件及連結等),如果沒有INSTALL文件,通常會把簡單的安裝程序放在這個文件。 COPYING:其中包括了使用執照或是描述軟件發地版本,有時LICENCE文件取代。 CONTRIB或CRED99vS :與這個軟件相關人士的列表(積極參與者,中肯的評論,輔助軟件) CHANGE :有時這個文件會叫做NEWS,紀錄最近改版及除錯的狀況 Makefile :有這個文件才能編譯軟件,但是通常在配置的過程中才會產生這個文件。 你會經常看到一個configure或Imakefile文件,可以讓我們由這個文件產生Makefile文件。 一個存放原始碼的目錄:也是編譯完成後存放二進制文件的地方,通常命名為src。 一個存放與軟件相關文件的目錄(通常是Texinfo或man的格式):,通常命名為doc。 有時會有一個目錄存放軟件的特定資料,用來放配置文件,產生資料的范例,或是資源文件。 二、 還原安裝文件(解壓縮) 在Linux的世界裡,最常見的壓縮格式,就是gzip格式,這是由GNU計畫所開發,也是一種常用的壓縮工具。  Gzip常和一個叫tar的公用程序同時使用,tar是一個歷史悠久的程序,以前用來將資料儲存在磁帶上。現在軟盤和光盤已經取代磁帶,但是tar還是用來產生壓縮程序,它可以將所有的文件及目錄結合為一個文件,這個文件可以簡單的用gzip壓縮。這就是為何很多tar的壓文件用gzip來壓縮,所以這些壓縮文件的後綴名為.tar.gz( 或者tgz)。 2.1 GNU Tar的使用   要解開以.tar.gz為後綴的壓縮文件,先用gzip解壓縮再用tar還原目錄結構就可以解開了。但是GNU版本的tar會自己去直接調用gzip,所以在解壓縮的時候也不用拆成兩個步驟,當然也不會浪費多余的硬盤空間。   Tar的命令格式如下: tar <文件選項> [文件名稱] [文件名稱]:這個參數是可以省略的,如果省略了,會直接將整個壓縮文件解開。對以tar.gz為後綴的壓縮文件,該參數不是必要的。   例如: $ tar xvfz guile-1.3.tar.gz -rw-r--r-- 442/1002 10555 1998-10-20 07:31 guile-1.3/Makefile.in -rw-rw-rw- 442/1002 6668 1998-10-20 06:59 guile-1.3/README -rw-rw-rw- 442/1002 2283 1998-02-01 22:05 guile-1.3/AUTHORS -rw-rw-rw- 442/1002 17989 1997-05-27 00:36 guile-1.3/COPYING -rw-rw-rw- 442/1002 28545 1998-10-20 07:05 guile-1.3/ChangeLog -rw-rw-rw- 442/1002 9364 1997-10-25 08:34 guile-1.3/INSTALL -rw-rw-rw- 442/1002 1223 1998-10-20 06:34 guile-1.3/Makefile.am -rw-rw-rw- 442/1002 98432 1998-10-20 07:30 guile-1.3/NEWS -rw-rw-rw- 442/1002 1388 1998-10-20 06:19 guile-1.3/THANKS -rw-rw-rw- 442/1002 1151 1998-08-16 21:45 guile-1.3/TODO ... tar的選項說明如下: v: 讓tar進入監視狀態,在解壓縮過程中,會將所有壓縮文件中的文件名顯示出來,如果沒有這個選項,在解壓縮過程當中,將不會顯示這些信息。 f:必要選項,代表要打開指定的壓縮文件。否則,tar會去尋找磁帶而不是文件來解壓縮。 z:允許你處理gzip文件(後綴為.gz),如果沒有這個選項,tar會產生錯誤信息,反過來說,如果壓縮文件沒有經過gzip處理過,請不要加這個參數。 tar允許對壓縮文件進行解壓縮、讀取、壓縮、新增文件等動作,執行這些動作的選項如下: x: 從壓縮文件中解出文件 t: 列出壓縮文件中的內容 c: 產生壓縮文件,可以利用這個指令備份個人資料。 r: 在壓縮文件中增加新文件,但是新加的文件不能為壓縮文件。 2.2 bzip2與gzip   bzip2是最近興起的壓縮格式,有逐漸取代gzip地位的趨勢。Bzip壓出的文件比gzip要小,但尚未成為標准,附屬文件名.tar.bz2,是最近才出現的。 兩個壓縮程序有近似的語法: Gzip [選項] [文件名稱]   如果沒有給文件名稱,gzip及bzip2都會等著由標准輸入取得資料並將結果送到標准輸出,因此可以在這兩個程序使用管道,兩個程序也有一些相同的選項:


1.-1,....,-9: 設定壓縮比,數字越大,壓縮比越高但同時也就越慢,天下沒有白吃的午餐。 2.-d: 解壓縮文件案,等於使用gunzip或bunzip2。 3.-c: 將壓縮或解壓縮文件的結果打印到標准輸出。 請注意!如果沒有使用-c選項,gzip及bzip2在壓縮完成後會刪除源文件,在bzip2可以使用-k選項防止,但gzip就沒辦法啦! 接下來以幾個例子作為說明,首先將所有現行目錄中,擴展名為txt的文件用bzip2壓縮: $ bzip2 -9 *.txt 若想與某人分享文件的備份,但他只有gzip,所以要將最後的文件轉換成為.gz格式,有些麻煩吧:(。沒關系,下面這條命令無須將文件解壓縮再重新壓縮,只要解壓縮到標准輸出,利用管道,由標准輸出壓縮轉向輸出成新的備份文件: Bzip2 -dc images.tar.bz2 gzip -9 >images.tar.gz   通過tar使用Bzip2的用法與gzip完全相同,唯一要做的是將選項z換成y,例如: $ tar xvfy foo.tar.bz2 有一些發行版本會以I代替: $ tar xvfI foo.tar.bz2 另外還有一種方式,看起來可移植性比較高, 可是卻要多打不少字!? $ tar --use-compress-program=bzip2 -xvf foo.tar.bz2 使用tar來處理.bz2格式壓縮文件前,要確定bzip2已經被安裝,而且PATH的環境變量中。 2.3 Just Do It! 2.3.1 最簡單的方法   現在可以開始解壓縮文件了,在這之前別忘了以系統管理者的身份來做這件事,因為以一般用戶的身份, 是不被允許執行一部份程序的,即使可以,以系統管理者的身份來做,還是會簡單很多。  第一步就是做備份,最好保持有一份原始壓縮文件,當你安裝好的程序毀了的時候,還可以重新安裝,如果硬盤空間不夠,可以將他備份在軟盤上,再把硬盤上的壓縮文件殺掉,當然如果確認當需要的時候,可由網絡找到,可以不備份。   解壓tar壓縮文件後,通常會產生一個新目錄(可以在解壓縮前檢查),進入這個目錄,現在可以進行下一個步驟了。 2.4.2 最安全的方法   Linux系統有著較為完善的安全措施,一般用戶無法執行危害到系統的操作(例如格式化硬盤),或改變其它用戶的文件,同時也可以防止系統被病毒感染。   另一方面,超級用戶root 可以做每一件事,甚至執行毀滅性的程序,擁有原始碼可以檢查這些不懷好意的程序代碼(例如病毒或特洛依木馬),對於這點最好小心一點。  有一個好方法,用addusr指令新增一個用戶,讓這個用戶擔任管理工作,它必須在下列目錄具有寫入的權限: /usr/local/src, /usr/local/bin 及/usr/local/lib ,還有/usr/man下的所有子目錄(或許還需要拷貝文件到其它地方),建議讓這個用戶或組擁有前述必要目錄的寫入權。做完這些預防措施後,就可以依照上面介紹的方法來做。 三、配置(configure)   在編譯軟件前,要對軟件的運行環境進行設置。系統中,通常有好幾個配置軟件,你必須使用軟件作者指定的,有時還要同時用到多個配置軟件,如果如果在發行版本的主要目錄中有configure這個文件存在通常使用Autoconf ;如果在發行版本的主要目錄中有Imakefile這個文件就使用Imake。   3.1 Autoconf   Autoconf 是一個配置軟件,產生的配置文件供編譯程序(例如Makefile)使用,有時會直接修改原始碼(例如在文件中使用config.h)。它的功能如下: 軟件的程序設計師將編譯軟件所需做的測試(例如可以使用那個版本的函數庫),依照規定的語法寫在configure.in這個文件裡。 程序設計師執行Autoconf,Autoconf讀取configure.in的內容產生一個設定的命令槁,這個命令執行系統設定時,所應做的測試。最終用戶執行這個命令,然後Autoconf 就做所有編譯過程中所需的測試。 Autoconf使用范例: $ ./configure loading cache ./config.cache checking for gcc... gcc checking whether the C compiler (gcc ) works... yes checking whether the C compiler (gcc ) is a cross-compiler... no checking whether we are using GNU C... yes checking whether gcc accepts -g... yes checking for main in -lX11... yes checking for main in -lXPm... yes

checking for main in -lguile... yes checking for main in -lm... yes checking for main in -lncurses... yes checking how to run the C preprocessor... gcc -E checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for ANSI C header files... yes checking for unistd.h... yes checking for working const... yes updating cache ./config.cache creating ./config.status creating lib/Makefile creating src/Makefile creating Makefile 在configure 後加上環境變量,可對configure的產出好更好的的控制。例如: $ ./configure --with-gcc --prefix=/opt/GN



checking how to run the C preprocessor... gcc -E checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include checking for ANSI C header files... yes checking for unistd.h... yes checking for working const... yes updating cache ./config.cache creating ./config.status creating lib/Makefile creating src/Makefile creating Makefile 在configure 後加上環境變量,可對configure的產出好更好的的控制。例如: $ ./configure --with-gcc --prefix=/opt/GN



Copyright © Linux教程網 All Rights Reserved