歡迎您光臨本站 註冊首頁

鏈接文件和Linux中編譯安裝軟體包簡介

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

一.鏈接文件的相關介紹:

鏈接文件分為硬鏈接文件和軟鏈接文件 1.硬鏈接文件:所謂硬鏈接就是指同一分區不同目錄中的文件指向的是同一個inode 創建硬鏈接的格式: ln [options] sourcefile destinationfile 如: ln init init2 注意:(1)硬鏈接不能跨分區存在,也不能對目錄創建硬鏈接 (2)硬鏈接引用的是inode號,硬鏈接文件的inode號是一樣的 (3)如果要刪除硬鏈接,只是將硬鏈接的次數刪除了,inode號不變,源文件不會刪除 2.軟鏈接文件:是一種特殊類型的文件,有箭頭指向,是一個獨立的文件,自身沒有任何屬性 它的大小隻是引用路徑的字元個數. 創建軟鏈接文件格式:ln -s sourcefile destinationfile 注意:(1)軟鏈接文件有自己的獨立的inode號 (2)軟鏈接可以跨分區存在,也可以對目錄創建軟鏈接 (3)軟鏈接文件引用的是路徑,不是inode號 (4)軟鏈接文件的訪問許可權取決於源文件的許可權,刪除軟鏈接文件,源文件不會被刪除, 但是刪除了源文件,軟鏈接將不可使用,系統會使用紅色閃動方式告訴你那是一個損壞的軟鏈接文件. (5)如果軟鏈接的源文件被刪除了,湊巧在源文件所在目錄下又被創建了一個和源文件同名的文 件,那麼被損壞的軟鏈接就會轉為正常,因為軟鏈接引用的是路徑,不是inode,只要路徑在,就可用. 二.Linux軟體包的安裝 linux中的許多外圍軟體都是遵循GPL協定的,是開源的代碼包,而將這些源代碼包編譯成二進位,並組織到一台計算機上 讓它們運行起來,形成一個功能完善的操作系統,對大多數用戶來說是很困難的.有很多發行商,在特定的平台上將這些 源碼包編譯成二進位形式,並提供相應的配置文件,幫助手冊等,將它們打包成光碟,成為發行版. Debian 是有名的linux發行商之一,這些發行商將這些源碼包編譯成二進位格式之後,提供一種管理工具,這種工具可以實現將 這些製作好的二進位格式的軟體包以某種形式封裝起來,這種封裝起來的結構能實現對特定軟體包的安裝、卸載、查詢、校驗 升級等各種管理功能,這個管理工具就稱為軟體包管理器. 作為Linux發行商的Redhat提供的軟體包管理工具rpm (Redhat Package Manager),有了這樣一個軟體包管理器,我們就可以 方便的使用一個命令來實現一個軟體包的安裝、卸載、查詢、校驗、升級,使軟體包的安裝在某種程度上變得很方便和簡單,而一 個單獨的rpm軟體包的運行可能是獨立的,也可能是和別的軟體包有著依賴關係.這種依賴關係是的安裝一個rpm包要同時安裝其他 被rpm包所依賴的軟體包,很費時費力,有時候甚至是循環依賴.rpm的依賴關係很讓人頭疼,阻礙了軟體包管理的便捷性和發展. 後來陸續出現了一些前段工具,它們可以自動解決依賴關係,如yum 軟體包的組成:二進位文件、配置文件、庫文件、文檔(包括man手冊、info文檔等等) 軟體包的安裝方式: 1.手動編譯安裝源代碼,編譯很困難,管理起來也很困難,對普通用戶來說更是不太可能 2.使用專門的軟體管理工具,二進位格式的軟體包rpm,解壓直接使用,但是製作和編譯很困難 那麼如何使用rpm來管理軟體包,下面就開始介紹: 1.安裝: rpm -i /path/rpm_package 直接安裝 rpm -ivh /path/rpm_package 顯示詳細安裝信息 rpm -ivh --nodeps(此選項是忽略依賴關係) /path/rpm_package 忽略依賴關係來安裝軟體包 2.卸載: rpm -e --nodeps rpm_packagename 忽略依賴關係強行卸載 3.升級: rpm -Uvh /path/rpm_package -U選項表示如果要升級的軟體包老版本沒有安裝,就將其裝上,如果老版本已經裝上了,就升級 rpm -Fvh /path/rpm_package -F選項表示在升級前老版本的軟體包必須已經安裝了,否則無法升級 4.查詢: rpm -q rpm_packagename 查詢指定的軟體包是否安裝 rpm -qa 查詢系統上所有安裝的軟體包 , -qa keyword(*,?) 如:rpm -qa *bash* 查詢所有bash類的軟體包 -qi rpm_packagename 顯示軟體包的摘要信息 -ql rpm_packagename 列出軟體包生成列表信息 -qc rpm_packagename 只顯示軟體包安裝后的配置文件 -qd rpm_packagename 顯示軟體包安裝后的生成文檔 -q --scripts rpm_packagename 顯示軟體包安裝的時候執行了哪些腳本 -qf FILENAME 查詢某個文件是由哪個軟體包生成的 -q --changlog rpm_packagename 顯示在製作過程中軟體包發生了什麼改變 也可以查詢一個還沒有安裝的軟體包的信息: rpm -qpi /path/rpm_package 摘要信息 -qpl /path/rpm_package 生成列表信息 -qpc /path/rpm_package 配置文件信息 -qpd /path/rpm_package 生成文檔信息 5.校驗: rpm -V rpm_packagename 當我們執行rpm -V rpm_packagename 後會出現一些"S......T"信息,這些信息所代表的意思: S : 文件大小發生改變 M : 許可權和文件類型發生了改變 5 : 表示MD5的校驗值發生了改變 D : 設備文件的主設備號和次設備號發生了改變 L : readlink的路徑不匹配 U : 文件的屬主發生了改變 G : 文件的屬組放生了改變 T : 最近一次的修改時間發生了改變 6.軟體包的驗證: rpm -K packagename 如果驗證通不過,說明還沒有導入redhat官方的公鑰,redhat官方的公鑰在/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 路徑下 導入公鑰: rpm --improt /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 此時如果再進行驗證,就可以驗證通過了.驗證的簽名有很多種,如dsa,sha1,md5,gpg等 如果不想驗證信息摘要,可以這樣: rpm -K --nodigest packagename 此時會忽略sha1和md5 如果不想驗證簽名,可以這樣: rpm -K --nosignature packagename 此時會忽略dsa和gpg 三. yum :也是以一種軟體包的安裝工具,是rpm包的前端工具,能自動解決依賴關係,使用yum安裝的軟體包必須是rpm格式的. 1.yum客戶端的配置文件由兩部分組成:/etc/yum.conf 、 /etc/yum.repos.d/*.repo,以.repo結尾的,就是定義yum源指向的配置文件 通常只有一個. 使用格式: yum install /path/to/rpm_file 需要注意的是,此時的這個軟體包(rpm_file)已經下載到本地了,它會自動解決依賴關係.前提是yum源已經配置好了,並且指定到特殊 的yum庫,它會自動找到所依賴的軟體包. 2.使用yum localinstall 安裝軟體包 格式:yum localinstall /path/to/rpm_file 當我們去安裝一個第三方提供的rpm軟體包,這個rpm軟體包不在光碟當中,但是這個第三方rpm包會依賴於我們光碟上的某些rpm包時,我 們把我們的yum源配置好,並且指向系統光碟上的所提供的基本rpm包,使用yum localinstall 安裝下載的第三方軟體包時,它會自動解決 依賴關係.使用rpm裝不了的軟體包,使用yum localinstall 可以安裝 注意:當我們使用yum localinstall 來安裝某個軟體包時,默認yum會檢測這個軟體包的來源合法性(檢驗其簽名和完整性)如果沒有導入 (如何導入前面有介紹)這個軟體包製作者的公鑰信息,就無法完成安裝. 遇到這種情況有兩種解決辦法:(1)導入這個軟體製作者的公鑰信息,檢測其合法性(2) 使用yum --nogegcheck localinstall ,不檢測其簽名 3.創建本地yum源方法: (1)事先創建一個目錄,比如就是這個目錄吧,/var/yum (2)將要當做yum源的軟體包複製到該目錄之下 (3)然後使用createrepo path 創建yum源,當然此時應該是 createrepo /var/yum 需要說明的是:此時如果你的createrepo 軟體包沒有安裝,就無法使用createrepo 創建yum源,要安裝之後才能創建本地yum源,安裝createrepo 軟體包很容易,可以使用系統光碟上自帶的軟體包安裝它,安裝方法如下: 如果你的系統光碟已經掛載到某個目錄下,如/media/cdrom下 ,進入到這個目錄下的Server目錄,createrepo文件就在這個目錄之下,直接使用 rpm命令就可以安裝它.rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm (4)切換到/var/yum/ 目錄下,此時repodata目錄已經存在了,repodata目錄下已經有了filelists.xml.gz、other.xml.gz、primary.xml、repomd.xml 四個必備文件. (5)切換到/etc/yum.repos.d/目錄下,創建一個以.repo結尾的文件(其中rhel-debuginfo.repo是默認有的,除此之外只能有一個以.repo結尾的文件) 然後使用vim編輯器打開這個以.repo結尾的文件,在裡面寫如下內容: [localyum] name=localyum baseurl=file:///var/yum gpgcheck=0 enabled=1 保存後退出. 其中 [localyum] 是yum源名稱,([main]不能使用,其他都可以用); name=localyum 是用來指定yum源的完整名稱的; baseurl=file:///var/yum 是本地yum源指向,一定是絕對路徑(是repodata 所在的那個路徑),如果不是本地yum源,它支持ftp和http協議 如:baseurl=ftp://172.16.0.1/yum/VT 、baseurl=http://172.16.0.1/yum/Server ,/yum/VT和/yum/Server是yum源所在路徑. gpgcheck=0 表示是檢測簽名的,0表示不檢查,1表示檢查 enabled=1 表示是否啟用此yum源,1表示啟用,0表示不啟用 (6)然後使用yum repolist 命令,會顯示所有已安裝的yum源,localyum 就會出現了,表示本地yum源已經創建成功.就可以使用yum源安裝軟體了.

本文出自 「知識體系」 博客,請務必保留此出處http://4420110.blog.51cto.com/4410110/793547


[火星人 ] 鏈接文件和Linux中編譯安裝軟體包簡介已經有430次圍觀

http://coctec.com/docs/linux/show-post-47457.html