濮阳杆衣贸易有限公司

主頁 > 知識庫 > FreeBSD的軟件管理

FreeBSD的軟件管理

熱門標簽:赤峰防封電銷卡 北海智能電銷機器人公司 地圖標注多個城市 人工電銷和ai機器人的區(qū)別 南京自動外呼系統(tǒng)有哪些 地圖標注與注記總結 駐馬店電話自動外呼系統(tǒng)怎么樣 地圖標注山峰最低高度 信陽外呼系統(tǒng)廠家

1、FreeBSD應用系統(tǒng)的組成

    FreeBSD應用系統(tǒng)由FreeBSD操作系統(tǒng)和移植(ports)到FreeBSD的各種應用軟件組成

    FreeBSD操作系統(tǒng)本身,是由內核和基本系統(tǒng)組成,基本系統(tǒng)由系統(tǒng)工具、系統(tǒng)庫和文檔組成,最小化安裝選項安裝的是內核、系統(tǒng)工具和系統(tǒng)庫,系統(tǒng)工具提供了完整的系統(tǒng)管理和編譯程序程序。而文檔和代碼以及ports系統(tǒng)是可選安裝的。如果完整安裝了FreeBSD,簡單的說就是安裝了內核、系統(tǒng)管理工具、系統(tǒng)庫、編譯程序、系統(tǒng)源代碼、ports以及man、info、FreeBSD handbook等文檔。

    為了擴大FreeBSD的應用,F(xiàn)reeBSD移植(port)了大量的自由軟件、開源軟件。并構建了ports系統(tǒng),把這些移植的軟件匯集到一起,從移植應用程序本身來說,大都是基于源代碼進行修改和調整,以便建立的程序可以運行在FreeBSD系統(tǒng)環(huán)境下,所以ports中存放的都是代碼修改以及編譯控制,以及FreeBSD的程序管理策略。

2、ports的組成

    一個軟件的ports,大致由以下幾個部分組成:

    pkg-descr  應用軟件的簡單描述
    pkg-plist  軟件安裝的文件列表
    distinfo   軟件源代碼的名稱,版本以及校驗信息
    Makefile   控制軟件編譯的makefile
    files目錄  里面包含對源代碼進行修改的各種補丁

    利用port進行軟件安裝非常簡單,這得益與ports系統(tǒng)的精心設計,大量繁瑣的操作都定義在 /usr/ports/mk 目錄下的文件當中,諸如一些變量定義,編譯選項定義,文件下載地址定義,編譯工具定義,以及一些操作的定義等等。具體軟件的port中的Makefile文件,都會繼承系統(tǒng)提供的這些定義,而且可以根據(jù)需要進行調整。

     具體軟件port的Makefile還提供了軟件運行依賴,建立依賴,以及對源代碼編譯過程中一些具體的定義。

3、利用ports進行軟件安裝的過程。

     簡單來說,可以用下面的指令來完成安裝

 

[Copy to clipboard] [ - ] CODE: make install clean


具體的過程是:

     根據(jù)distinfo文件中的軟件源代碼文件名,檢測 /usr/ports/distfiles 目錄下,是否有軟件的源代碼

     如果沒有,調用 make fetch 從Makefile文件中定義的下載地址進行下載

     下載完成以后,調用 make checksum ,利用 distinfo 文件中的源代碼文件的校驗信息,校驗源代碼包的完整性。

     如果校驗正確,調用 make extract,對源代碼進行解壓,具體的路徑是:

 

[Copy to clipboard] [ - ] CODE: 軟件port當前路徑/work/源代碼文件名去掉后面的.gz.bz2/


解壓源代碼后,調用 make patch ,搜索 files 目錄下的補丁文件為源代碼打補丁,

     打完補丁,根據(jù) Makefile文件中定義的軟件運行依賴關系,查找系統(tǒng)中是否安裝對應的軟件,如果沒有安裝,會轉入相應的軟件的ports中進行make install clean 。假設當前應用程序的所有運行依賴都已經(jīng)安裝,ports系統(tǒng)會進入源代碼目錄,運行里面的configure文件,生成源代碼目錄下的makefile文件,然后進行源代碼的make過程,對源代碼進行編譯、連接。

     當所有的make過程結束以后。運行ports系統(tǒng)的 make install進行安裝。

     安裝完成以后,利用pkg-descr,pkg-plist的內容在  /var/db/pkg 目錄下對這個軟件進行注冊。標記這個軟件已經(jīng)安裝,并詳細注冊了安裝文件列表。

     如果軟件注冊成功,ports系統(tǒng)利用make clean命令,清除軟件port當前目錄下work子目錄信息。如果在編譯安裝過程中對有依賴關系的軟件進行過編譯安裝,會回溯清理過程。

4、packages軟件安裝和管理

     packages,也可以稱作編譯封裝好的應用軟件的二進制包,是FreeBSD提供的基于ports系統(tǒng)建立的二進制軟件包,這個軟件包實際上是FreeBSD利用硬件資源,利用 ports 系統(tǒng)的 make package 命令建立的。這些package存放在 ftp.freebsd.org 服務器上,可以遠程直接下載安裝,也可以下載后進行安裝。

    以freebsd 7.0 release為例,它的二進制軟件包網(wǎng)絡地址是:

    ftp://ftp.freebsd.org/pub/FreeBS ... ckages-7.0-release/

    在這個網(wǎng)絡目錄下,有兩個文件夾要用到,一個是 All ,一個是 Latest,注意第一個字母都是大寫。

    All目錄下的文件,是利用ports建立的二進制軟件包,例如 mysql51-server-5.1.22.tbz,軟件包名稱來自它的ports名,版本號是ports根據(jù)軟件包源代碼版本進行的定義。

    Latest目錄下的文件,其實是All目錄下軟件二進制包的軟連接,并且省去了版本號,這個目錄是 FreeBSD系統(tǒng)網(wǎng)絡在線遠程安裝所要訪問的目錄,對于 mysql51-server-5.1.22.tbz 的軟連接名是 mysql51-server.tbz。這樣在遠程安裝時就省去了輸入版本號的麻煩。

    這兩個目錄的建立和維護也是由ports系統(tǒng)自動完成的,無需干預。

    FreeBSD操作系統(tǒng)提供的系統(tǒng)管理工具中,提供了對packages的維護工具

    軟件安裝

    遠程軟件安裝:  pkg_add -r 軟件包名稱  例如:pkg_add -r mysql51-server,pkg_add -r xorg,pkg_add -r kde

    系統(tǒng)會自動在上面所說的ftp服務器Latest目錄下查找 mysql51-server.tbz,xorg.tbz,kde.tbz,但有一點需要注意,F(xiàn)reeBSD的ftp服務器并不保證ports上容納的所有的移植過來的軟件都有二進制包,尤其是stable分支,有些是因為軟件ports本身有問題無法建立,也有一些軟件ports正在修訂,還有一些只允許源代碼包發(fā)布,協(xié)議不允許進行打包。
   
    本地軟件安裝:   pkg_add  軟件包文件名 ,用這種方式安裝軟件包,需要從All目錄下載,防止軟件安裝時搜索特定版本的有依賴關系的軟件包。

    一個建議:利用pkg_add -r -K 這個命令,它的作用是,遠程下載,安裝,并且把下載的二進制包保存在 PKGDIR 定義的目錄上。PKGDIR 默認的定義是 /usr/ports/packages/
 

標簽:晉中 梧州 廣元 德陽 達州 烏蘭察布 張家界 信陽

巨人網(wǎng)絡通訊聲明:本文標題《FreeBSD的軟件管理》,本文關鍵詞  FreeBSD,的,軟件,管理,FreeBSD,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《FreeBSD的軟件管理》相關的同類信息!
  • 本頁收集關于FreeBSD的軟件管理的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    崇州市| 界首市| 崇文区| 离岛区| 新安县| 香格里拉县| 黄梅县| 广河县| 绵阳市| 聂荣县| 巩义市| 泗阳县| 海盐县| 绍兴县| 盘山县| 渭源县| 岑溪市| 治多县| 安达市| 景洪市| 门头沟区| 綦江县| 宜兴市| 遵义市| 治县。| 延川县| 府谷县| 沙雅县| 石嘴山市| 廊坊市| 化州市| 左权县| 广州市| 积石山| 讷河市| 闽清县| 六安市| 云阳县| 民权县| 海安县| 凤山县|