1. 程式人生 > >centos下的軟體安裝

centos下的軟體安裝

 CentOS軟體安裝

linux下的軟體包分為兩種。分別是二進位制包和RPM包

原始碼包就是c語言的原始碼。要安裝的時候需要使用gcc命令現場編譯

原始碼包的優點

    1.開源,有足夠能力就可以修改原始碼。

    2.可以自由選擇所需要的功能

    3.軟體是編譯安裝,所以更適合自己的系統,也更穩定高效。

     缺點

     1.安裝過程較多,尤其是安裝較大的軟體時(如LAMP)出錯的可能大

     3.編譯安裝非常慢。(安裝一個作業系統用原始碼裝在不報錯的情況下至少需要2,3天,過程全是在編譯)

     4.安裝報錯的話,新手很可能搞不定,因為需要改原始碼

主要介紹一下rpm包吧。


Redhat,CentOS,Suse用的是rpm包

Debian,Ubuntu用的是det包

但用rpm命令安裝軟體時會有令人深惡痛絕的依賴性問題,樹形依賴和環形依賴還好說,只有有耐心,就可以裝成功,但庫檔案依賴就令人無語了,早期沒有網站去查庫檔案依賴性,庫檔案依賴只能靠猜。依賴性是什麼。舉個例子。windows下打遊戲時有沒有注意到下圖的問題

這就是很明顯的軟體依賴關係。但windows不是太明顯,不是什麼都需要依賴。linux下基本什麼軟體都需要依賴。而且一個依賴一個,沒完沒了的依賴,很煩人。

依賴關係:

1.樹形依賴       (A依賴B,B依賴C,C依賴D。)
2.環形依賴       (A依賴B,B依賴A,A依賴B……)

3.庫檔案依賴    (依賴某個庫內的某個檔案,可以查詢www.rpmfind.net查詢依賴問題)

 rpm包的優點

   1.安裝過程簡單

   2.安裝速度快。

    缺點:

    1.是經過編譯的,所以看不到原始碼

    2.功能選擇不如原始碼包靈活

    3.深惡痛絕的依賴性!!!

首先說一下rpm包的命名規則。看下面的例子。

telepathy-mission-control-5.16.3-2.el7.x86_64.rpm

-telepathy-mission-control   軟體包名

-5.16.3軟體版本

-.2軟體的釋出次數

-.el7適合的linux平臺

-x86_64適合的硬體平臺

-rpm包的副檔名

下面演示一下rpm的安裝時的依賴性。

這已經說的很明白了,安裝mysql-xxx需要libodbc.so.2這個庫檔案。

那麼說以下rpm 的一些選項吧

                  rpm  -i    name.rpm    安裝軟體包

                          -v   (verbose)     顯示過程

                          -h (hash)       顯示進度

                                    --nodeps   忽律依賴性(其實是自欺欺人)

                                    --force        強行安裝

                          -e   softname     解除安裝軟體包

                   rpm -ql softname       查詢軟體生成檔案
                          -qlp name.rpm    查詢軟體生成
                          -qa                      所有安裝的
                          -qa|grep name
                          -q name
                          -qp name.rpm      查詢軟體包安裝
                          -qf filename         檢視filename屬於哪個安裝包
                          -qi name              檢視軟體細資訊
                          -Kv name.rpm      檢測軟體包是否被篡改
                          -qp name.rpm --scripts  檢測軟體在安裝或解除安裝執行的動作

下面演示以下查詢類的rpm命令

1.想查一下我裝的dhcp都在我的主機上生成了哪些檔案

2.我想查一下,我都的機子上都裝了什麼軟體包呢


3.我想查一下,我裝了dhcp,mysql沒


 4.我想查一下某個檔案或者某個命令是裝什麼rpm包是裝的

 

  5.我想查一下我安裝的某個軟體包是不是被篡改過?(壞人給移植進去了病毒).

看,被修改過後。MD5的校驗因為雪崩效應就檢驗不合格了。

接上面的。還可以用V檢視。還可以精確到哪些資訊被修改了(八個資訊有檔案大小,許可權。。。。)


 6.我檢查了某個rpm確實沒被修改過。但還是不敢裝。因為不知道里面究竟是什麼內容。萬一一安裝把系統毀了怎麼辦呢。

(這樣不但可以看到安裝前。解除安裝後。這個軟體都會執行什麼樣的指令碼)


7.我想查一下。dhcp這個軟體包的詳細資訊(連我什麼時候安裝的都可以查到哦)

下面介紹一下可以大大簡化管理員安裝軟體時的操作的好工具(yum )

     yum是很方便的。但首先需要搭建yum源。在/etc/yum.repos.d下有一些以repo結尾的檔案。這就是yum源。

[base]         容器名字(隨便寫)   

name          容器說明(隨便寫)

mirrorlist    映象站點

baseurl       自己配置的yum源地址,跟上面的那個選一個就可以了,另一個註釋掉(一定是留一個用)

enabled       此容器是否生效

gpgcheck   RPM的數字認證證書

pgpkey      數字證書的公鑰儲存地址

這個是網路yum源。就是說,電腦可以上網的話就直接可以使用yum了。而且CentOS是免費的哦(開源精神)

下面說一下使用光碟或者映象搭建一個自己的本地yum源頭。

首先需要有一個光碟或者映象。

1.將光碟或者映象掛在起來。

將/dev下的自己光碟掛載到某個目錄下。一般來說在/mnt下新建一個cdrom(沒有自己建立一個命令是 mkdir /mnt/cdrom),然後掛載在那裡。我的光碟叫做sr0。所以我就執行 mount /dev/sr0 /mnt/cdrom  。

2.編輯/etc/yum.repos.d/CentOS_Media.repo這個檔案。


3.執行一下yum clean all 清空一下快取。就把本地yum源搭建完成了。很簡單吧。(baseurl就是剛才光碟掛載的地方)

下面先講解一下yum的一些命令。再演示如何下載軟體

yum命令

yum     install
    remove
    repolist    列出源資訊
    list         檢視源中是否有此軟體
    list all    檢視源中所有的軟體
    list installed   檢視已經安裝的軟體
    list available   檢視可以使用的
    clean all        清空快取
    search        通過關鍵字搜尋軟體
    whatprovides    通過資訊(如檔名)檢視搜尋軟體
    update        升級
    history        檢視對系統修改的yum命令
    reinstall    重新安裝
    info        檢視軟體資訊
    groups list
    groups info     組軟體資訊
    groups install    組安裝
    groups remove    組移除

下面就演示一下下載軟體吧。1.比如下載一個dhcp(分配IP地址的服務)

2.檢視我是否下載了dhcp

3.檢視軟體dhcp的資訊。

4.我想要下載一些軟體組。(先查一下都有哪些軟體組)

(可以看到有虛擬化呀。KDE桌面呀,圖形工具呀什麼的)

但畢竟官方的rpm包有限。我想要安裝一個第三方軟體怎麼辦(下面教如何搭建一個第三方yum源)

1.首先建立一個目錄。裡面放一些rpm包,注意該目錄下必須全是rpm包,不能有其他東西。

我都建立好了。這就不演示了

2.配置第三方yum源。還是在那個/etc/yum.repos.d/CentOS-Media.repo下配置。(file://後跟自己的軟體所在的目錄。該目錄下必須全是rpm包)

3.執行createrepo -v  剛才放rpm包的目錄路徑,看下圖


4.執行命令。yum clean all。清空快取

好了。可以下載第三方軟體了

我在網上找個谷歌瀏覽器的rpm包(百度搜索rpmfind)


下載下來。

其實yum源還可以自己搭建一個網路yum源(區域網)

先yum -y install httpd 下載阿帕其.然後systemctl start httpd 啟動他。start換成status可以檢視狀態

然後在//var/www/html 下新建一個目錄。我的叫做CentOS7 

將光碟掛載在這個目錄下。就好了。我通過迴環介面看一下