Linux/Centos7安裝與管理程序
- Linux應用程序基礎
- 查詢RPM軟件包信息
- 安裝、升級、卸載、RPM軟件包 /yum倉庫
- 源代碼編譯
一、應用程序與系統命令的關係
-
文件位置
-
系統命令:一般在/bin和/sbin目錄中,或者爲shell內部指令
-
應用程序:通常在/usr/bin和/usr/sbin目錄中
-
主要用途
-
系統命令:完成對系統的基本管理操作
-
應用程序:完成相對獨立的其他輔助任務
-
適用環境
-
系統命令:一般只在字符操作界面中運行
-
應用程序:根據實際需要,有些程序可以在圖形用戶界面中運行
-
運行格式
-
系統命令:一般包括命令字、命令選項和命令參數
- 應用程序:通常沒有固定的執行格式
二、典型應用程序的目錄結構
- /usr/bin 普通執行程序文件
- /usr/sbin 服務器執行程序文件和管理程序文件
- /etc 應用程序配置文件 (--prefix='指定的路徑')
- /var/log 日誌文件
- /usr/share/doc 應用程序文檔文件
- /usr/share/man 應用程序手頁文件
三、常見的軟件包封裝類型
- rpm軟件包 .rpm
- deb軟件包 .deb
- 源代碼軟件包 一般爲.tar.gz或者tar.bz2
- 綠色免安裝的軟件包
-
RPM包管理工具
- 建立統一的數據庫文件
- 詳細記錄軟件包安裝、卸載等變化信息
- 自動分析軟件包的依賴關係
一般命名格式:bash-4.1.2-15.el6_4.x86_64.rpm如下表介紹:
bash | 軟件名稱 |
---|---|
4.1.2 | 版本號 |
15.el6_4 | 發佈次數 |
x86_64 | 硬件平臺 |
rpm | 擴展名 |
-
查詢RPM軟件包信息
查詢已安裝的——rpm -q【子選項】[軟件名]
- -qa: 查看系統已安裝的軟件包
- -qi: 查看軟件包的詳細信息
- -ql: 查看軟件包安裝的所有信息
- -qf: 根據指定文件查看所屬軟件包
- -qc: 查看此軟件包所有的配置文件(conf cnf ini)
- -qd: 查看此軟件包的文檔
查詢未安裝的——rpm -qp【子選項】rpm包文件( i l c d)
-
rpm安裝更新與卸載
rpm -ivh——詳細安裝過程
- -U更新
- -e卸載
- -i 安裝
- --force 強制執行
- --nodeps 解決依賴性關係 (可能會造成軟件出現問題)
- -h 友好顯示(帶#讀條顯示)
- -v 顯示詳細信息
重建RPM數據庫命令
- rpm --rebuliddb
- rpm --initdb
導入驗證公鑰(默認情況在鏡像文件中就有)
rpm --import
四、解決軟件包依賴關係方法
安裝有依賴關係的多個軟件時
- 被依賴的軟件包需要先安裝
- 可以同時指定多個.rpm包文件進行安裝
卸載有依賴關係的多個軟件時
- 依賴其他程序的軟件包需要先卸載
- 可以同時指定多個軟件名進行卸載
忽略依賴關係
結合“--nodeps”選項,但是可能導致軟件異常!!!
五、源代碼編譯概述
使用源代碼安裝軟件的優點
- 獲取最新的軟件版本,及時修復bug
- 根據用戶需要,靈活定製軟件功能
源代碼編譯過程(手工編譯安裝)——首先安裝編譯器(gcc和gcc-c++)
- 下載源代碼安裝包文件
- tar解壓
- ./configure配置
- make編譯
- make install 安裝
- 測試及應用、維護
編譯器安裝操作
[root@lokott ~]# yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y
....//中間過程省略,其中yum命令隨後介紹
已安裝:
gcc.x86_64 0:4.8.5-39.el7 gcc-c++.x86_64 0:4.8.5-39.el7 pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-18.el7
作爲依賴被安裝:
cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.4.1.el7 libmpc.x86_64 0:1.0.1-3.el7
libstdc++-devel.x86_64 0:4.8.5-39.el7
作爲依賴被升級:
glibc.x86_64 0:2.17-292.el7 glibc-common.x86_64 0:2.17-292.el7 libgcc.x86_64 0:4.8.5-39.el7 libgomp.x86_64 0:4.8.5-39.el7 libstdc++.x86_64 0:4.8.5-39.el7 zlib.x86_64 0:1.2.7-18.el7
完畢!
可以用./configure --help查看幫助
典型配置選項:--prefix=軟件安裝目錄 例如:
[root@lokott ~]#cd /usr/src/httd-2.2.15/
[root@lokott httpd-2.2.15]#./configure --prefix=/usr/local/apache
六、yum
yum的概念:(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的shell前端軟件包管理器。基於rpm包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
目的——爲了解決依賴關係同時使用最新版本
yum倉庫
(1)私網倉庫
(2)公網倉庫
- 自建倉庫
- 官方倉庫
七、總結
主要介紹了Linux的安裝與管理程序,簡述了Linux應用程序基礎、查詢RPM軟件包信息以及安裝、升級、卸載、RPM軟件包 /yum倉庫和源代碼編譯(手工編譯安裝)的相關要點,其中源代碼安裝中配置文件和make install程序error的概率比較高,所以解決這類問題的研究者都是有一定實力的!!!所以我們需要永遠向優秀的人學習!