Linux安裝及管理軟件程序全過程
一、Linux安裝程序的幾種方式
1.源碼編譯安裝(二進制安裝)
實際上,源碼包就是一大堆源代碼程序,是由程序員按照特定的格式和語法編寫出來的。
源碼包經(jīng)過成功編譯之后產(chǎn)生二進制包,最后安裝寫入硬盤。
由于二進制包在發(fā)布之前就已經(jīng)完成了編譯的工作,因此用戶安裝軟件的速度較快(同 Windows下安裝軟件速度相當(dāng)),且安裝過程報錯幾率大大減小。
優(yōu)點:
- 開源。如果你有足夠的能力,則可以修改源代碼。
- 可以自由選擇所需的功能。
- 因為軟件是編譯安裝的,所以更加適合自己的系統(tǒng),更加穩(wěn)定,效率也更高。
- 卸載方便。
不足:
- 安裝過程步驟較多,尤其是在安裝較大的軟件集合時(如 LAMP 環(huán)境搭建),容易出現(xiàn)拼寫錯誤。
- 編譯時間較長,所以安裝時間比二進制安裝要長。
- 因為軟件是編譯安裝的,所以在安裝過程中一旦報錯,新手很難解決
2.rpm安裝
由Red Hat公司提出,被眾多Linux發(fā)行版所采用建立統(tǒng)一的數(shù)據(jù)庫文件(一張對應(yīng)表將信息寫入)詳細記錄軟件包安裝、卸載等變化信息自動分析軟件包依賴關(guān)系。
優(yōu)點:
- 統(tǒng)一的安裝包格式
- 已經(jīng)幫你編譯完成
- 使用簡單
不足:
- 因為軟件存在依賴關(guān)系,需要先手動下載各依賴包(過于繁瑣,安裝軟件時基本不用)
3.yum軟件倉庫
解決rpm包依賴關(guān)系而誕生
優(yōu)點:
- 安裝簡單
- 自動解決依賴關(guān)系
4.下載安裝包
二、安裝管理軟件程序
獲取軟件包的幾種方式
- 紅帽官方
- 第三方組織提供
- 軟件項目官方站點
- 自己制作
以下實操演示通過掛載鏡像文件,獲取其中的rpm安裝包來安裝軟件程序
掛載 :
- linux當(dāng)中一切皆文件,無論硬件軟件都要當(dāng)成文件來使用,硬件不能直接當(dāng)成文件來使用,再加硬盤只能在根分區(qū)下進行操作。
- 掛載是將硬件和根分區(qū)下某一文件夾做關(guān)聯(lián),相當(dāng)于這個文件夾是進入硬盤的一個入口
1.rpm包管理工具
(1)一般命名格式
bash-4.1.2-15.el6_4.x86_64.rpm
bash——shell環(huán)境 4.1.2——版本信息 15——發(fā)布次數(shù) x86_64——系統(tǒng)架構(gòu)
(2)拆包后分類
[root@localhost Packages]# ll httpd* -rw-rw-r--. 2 root root 2835196 8月 11 2017 httpd-2.4.6-67.el7.centos.x86_64.rpm -rw-rw-r--. 2 root root 197360 8月 11 2017 httpd-devel-2.4.6-67.el7.centos.x86_64.rpm -rw-rw-r--. 2 root root 1402824 8月 11 2017 httpd-manual-2.4.6-67.el7.centos.noarch.rpm -rw-rw-r--. 2 root root 89284 8月 11 2017 httpd-tools-2.4.6-67.el7.centos.x86_64.rpm // 主包 開發(fā)包 手冊包 工具包
(3)包管理器相關(guān)文件
- 包文件組成 (每個包獨有)
- 包內(nèi)的文件
- 元數(shù)據(jù),如:包的名稱,版本,依賴性,描述等
- 可能會有包安裝或卸載時運行的腳本
- 數(shù)據(jù)庫(公共):/var/lib/rpm (安裝好后會將一些公共的數(shù)據(jù)放入數(shù)據(jù)庫中)
- 程序包名稱及版本
- 依賴關(guān)系
- 功能說明
- 包安裝后生成的各文件路徑及校驗碼信息
(4) 查詢安裝包信息命令
查詢指定軟件是否安裝
rpm -q 軟件名
查詢已安裝軟件的信息
- -qa //顯示當(dāng)前系統(tǒng)中以 RPM 方式安裝的所有軟件列表
- -ql //顯示指定的軟件包在當(dāng)前系統(tǒng)中安裝的所有目錄、文件列表
- -qi //查看指定軟件包的名稱、版本、許可協(xié)議、用途描述等詳細信息
- -qc //列出已安裝的指定軟件的配置文件
- -qd //列出已安裝的指定軟件的軟件包文檔所在位置
- -qf //查看指定的文件或目錄是由哪個軟件包所安裝的
查詢已安裝軟件包的信息
- -qpl //顯示指定的軟件包在當(dāng)前系統(tǒng)中安裝的所有目錄、文件列表
- -qpi //查看指定軟件包的名稱、版本、許可協(xié)議、用途描述等詳細信息
- -qpc //列出已安裝的指定軟件的配置文件
- -qpd //列出已安裝的指定軟件的軟件包文檔所在位置
(5)rpm安裝管理軟件
[root@localhost Packages]# rpm -i 軟件名 //rpm安裝軟件 -v //顯示過程 -h //顯示進度條#### -e //卸載軟件 -U //升級軟件(需要升級包)
//無依賴關(guān)系,安裝成功 [root@localhost Packages]#rpm -ivh tree-1.6.0-10.el7.x86_64.rpm warning: tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:tree-1.6.0-10.el7 ################################# [100%] //存在依賴包,需要手動安裝依賴包 [root@localhost Packages]#rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm 錯誤:依賴檢測失敗: httpd-tools = 2.4.6-67.el7.centos 被 httpd-2.4.6-67.el7.centos.x86_64 需要 [root@localhost Packages]#rpm -ivh httpd-tools-2.4.6-67.el7.centos.x86_64.rpm 準(zhǔn)備中... ################################# [100%] 正在升級/安裝... 1:httpd-tools-2.4.6-67.el7.centos ################################# [100%] [root@localhost Packages]#rpm -ivh httpd-2.4.6-67.el7.centos.x86_64.rpm 準(zhǔn)備中... ################################# [100%] 正在升級/安裝... 1:httpd-2.4.6-67.el7.centos ################################# [100%]
2.源碼編譯安裝
(1)源碼
大部分是c語言開發(fā)的,更方便的使用
- 軟件版本比較新,新功能,修復(fù)bug
- 可以自行定義配置文件的路徑
- 源碼可能有100個功能,紅帽認(rèn)為你可能不需要會自行處理砍掉,自行定制50
(2)程序包編譯安裝
源代碼 --> 預(yù)處理 --> 編譯 --> 匯編 --> 鏈接 --> 執(zhí)行
多文件:文件中的代碼之間,很可能存在跨文件依賴關(guān)系雖然有很多開源軟件將軟件打成包,供人們使用,但并不是所有源代碼都打成包,如果想使用開源軟件,可能需要自已下載源碼,進行編譯安裝。
另外即使提供了包,但是生產(chǎn)中需要用于軟件的某些特性,仍然需要自行編譯安裝。
但是利用源代碼編譯安裝是比較繁瑣的,慶幸的是有相關(guān)的項目管理工具可以大大減少編譯過程的復(fù)雜度
(3)步驟
第一步:./configure 軟件作者寫的腳本(安裝包中會有)
- 可以更改你的安裝路徑,
- 選擇你要安裝軟件的功能
- 檢測你的安裝環(huán)境
第二步:make 將源代碼編譯成二進制語言
常見的編譯軟件 gcc gcc-c++
第三步:make install 將二進制 數(shù)據(jù)寫入硬盤,安裝進系統(tǒng)
(4)源碼編譯安裝實操
[root@localhost ~]#mkdir /app /data [root@localhost data]#ls httpd-2.4.29.tar.bz2 //解壓安裝包 [root@localhost data]#tar xf httpd-2.4.29.tar.bz2 //進入安裝包 [root@localhost data]#cd httpd-2.4.29 //安裝依賴環(huán)境需要的工具包 [root@localhost httpd-2.4.29]#yum install apr* gcc* pcre* -y //配置安裝路徑到/app [root@localhost httpd-2.4.29]#./configure --prefix=/app //使用使用2顆cpu編譯 [root@localhost httpd-2.4.29]#make -j2 //安裝寫入硬盤 [root@localhost httpd-2.4.29]#make install //檢查是否安裝成功——httpd網(wǎng)頁服務(wù)是否開啟 [root@localhost httpd-2.4.29]#/app/bin/apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified this message //80端口打開說明網(wǎng)頁服務(wù)開啟 [root@localhost httpd-2.4.29]#ss -ntap |grep 80 LISTEN 0 128 [::]:80 [::]:* users:(("httpd",pid=25821,fd=4),("httpd",pid=25820,fd=4),("httpd",pid=25819,fd=4),("httpd",pid=25818,fd=4))
3.yum安裝管理軟件
yum是一個基于RPM包構(gòu)建的軟件更新機制,能夠自動解決軟件包之間的依賴關(guān)系,解決了日常工作中的大量查找安裝依賴包的時間。
[root@localhost Packages]# yum [選項] 操作 軟件包 -y install //安裝過程提示選擇全部yes -q install //不顯示安裝過程 info //顯示安裝包信息 list //不加包名顯示所有已安裝和可安裝的包信息 deplist //查看包依賴情況 remove //卸載軟件 clean //清理緩存目錄下的軟件包
(1)c/s架構(gòu)
需要服務(wù)器來提供服務(wù)
成為服務(wù)器一定要有以下兩個文件夾 Packages 和 repodata
- Packages——安裝包(Packages不固定,但是統(tǒng)一叫Packages)
- repodata——元數(shù)據(jù)(安裝包路徑,依賴關(guān)系,元數(shù)據(jù)等)
客戶端
- 客戶端需要配置一個文件指明服務(wù)器的路徑
- 客戶端的配置文件固定位置在 /etc/yum.repos.d/ (客戶端配置文件必須以.repo結(jié)尾)
(2)安裝過程
- 客戶端第一次連接服務(wù)端會將元數(shù)據(jù)文件保存下來;
- 再根據(jù)元數(shù)據(jù)中的依賴關(guān)系和包路徑,將所需要的安裝包全部下載下來,放到緩存目錄;
- 安裝結(jié)束后,將緩存目錄中的安裝包全部刪除。
(3)配置本地yum源
一般來說,默認(rèn)的倉庫路徑會需要訪問互聯(lián)網(wǎng),當(dāng)我們不能訪問互聯(lián)網(wǎng)時,就需要我們搭建本地yum倉庫。這樣客戶端就可以通過本地yum倉庫安裝軟件等。
搭建一個本地yum倉庫需要:
服務(wù)端
- 安裝包 Packges:通過掛載、復(fù)制等
- 元數(shù)據(jù) repodata:通過自行生成、復(fù)制等
客戶端
手寫配置文件(以.repo結(jié)尾)
//配置文件一般格式 [base] --倉庫的名字,自定義 name=CentOS-$releasever - Base --倉庫的描述,自定義 baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ --倉庫服務(wù)器的路徑 gpgcheck=1 --檢驗包的安全性完整性(1代表需要,0代表不需要) gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 --如果gpgcheck=1,需要指明驗證文件的位置 enabled=1 --代表啟用該倉庫(1代表啟用,0代表關(guān)閉,不寫默認(rèn)開啟) 注: 倉庫服務(wù)器 baseurl 有四種表示方式 file:// --本地的路徑(當(dāng)前系統(tǒng)的路徑) http:// --網(wǎng)頁的形式 https:// --加密 ftp:// --文件共享服務(wù)來實現(xiàn)
(4)yum安裝軟件實操
//通過掛載獲取安裝包 [root@localhost ~]#mount /dev/sr0 /mnt mount: /dev/sr0 寫保護,將以只讀方式掛載 //切換到y(tǒng)um源配置目錄下 [root@localhost ~]#cd /etc/yum.repos.d/ //ls查看目錄下有很多yum源 [root@localhost yum.repos.d]#ls CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo CentOS-x86_64-kernel.repo CentOS-Debuginfo.repo CentOS-Sources.repo //新建bak目錄,將原有yum源移動進去 [root@localhost yum.repos.d]#mkdir bak [root@localhost yum.repos.d]#mv * bak/ [root@localhost yum.repos.d]#ls bak CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-CR.repo CentOS-Media.repo CentOS-x86_64-kernel.repo CentOS-Debuginfo.repo CentOS-Sources.repo //新建本地yum源配置文件并編輯 [root@localhost yum.repos.d]#vim local.repo [local] name=local baseurl=file:///mnt gpgcheck=0 enabled=1 //清理yum緩存目錄 [root@localhost yum.repos.d]#yum clean all 已加載插件:fastestmirror, langpacks 正在清理軟件源: local Cleaning up list of fastest mirrors Other repos take up 850 M of disk space (use --verbose for details) //重新建立源數(shù)據(jù) [root@localhost yum.repos.d]#yum makecache 已加載插件:fastestmirror, langpacks Determining fastest mirrors local | 3.6 kB 00:00 (1/4): local/group_gz | 153 kB 00:00 (2/4): local/filelists_db | 3.3 MB 00:00 (3/4): local/primary_db | 3.3 MB 00:00 (4/4): local/other_db | 1.3 MB 00:00 元數(shù)據(jù)緩存已建立 //嘗試通過本地yum源下載軟件(以php為例) [root@localhost yum.repos.d]#yum install php -y 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關(guān)系 --> 正在檢查事務(wù) ---> 軟件包 php.x86_64.0.5.4.16-48.el7 將被 安裝 --> 正在處理依賴關(guān)系 php-common(x86-64) = 5.4.16-48.el7,它被軟件包 php-5.4.16-48.el7.x86_64 需要 ... 已安裝: php.x86_64 0:5.4.16-48.el7 作為依賴被安裝: httpd.x86_64 0:2.4.6-95.el7.centos httpd-tools.x86_64 0:2.4.6-95.el7.centos libzip.x86_64 0:0.10.1-8.el7 mailcap.noarch 0:2.1.41-2.el7 php-cli.x86_64 0:5.4.16-48.el7 php-common.x86_64 0:5.4.16-48.el7 完畢! --安裝成功,說明本地yum源可以使用
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Ubuntu中如何查看網(wǎng)絡(luò)路由表詳解
這篇文章主要給大家介紹了關(guān)于在Ubuntu中如何查看網(wǎng)絡(luò)路由表的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用ubuntu具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12Linux性能監(jiān)控工具nmon安裝及使用教程解析
這篇文章主要介紹了Linux性能監(jiān)控工具nmon安裝及使用教程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-0721個常用的apache .htaccess文件配置技巧分享
這篇文章主要介紹了21個常用的apache .htaccess文件配置技巧分享,涵蓋了網(wǎng)站中最常用的一些功能需求解決辦法,需要的朋友可以參考下2014-07-07Linux server配置安裝Java與Tomcat服務(wù)器教程詳解
這篇文章主要介紹了Linux server配置安裝Java與Tomcat服務(wù)器教程詳解,需要的朋友可以參考下2017-08-08