軟件包管理-源碼包管理-源碼包與RPM包的區別

一、源碼包與RPM包的區別

在前面講軟件包簡介的時候,說過他們之間的區別。安裝之前是概念上的區別,比如說,源碼包是開源的,安裝更自由,安裝完之後效率更高,但是那安裝更慢,更容易報錯,rpm包是經過編譯的,不能看到源代碼,但是安裝更快,而且報錯容易解決,只有依賴性這種東西。這些都是概念上的區別。現在安裝之後或者具體開始講安裝,他們兩個裝上之後,給用戶帶來最直觀的區別就是安裝位置。rpm包不需要指定安裝位置,會安裝在系統默認位置當中,而源碼包是人爲手工指定安裝位置。位置的不同,在後續的管理當中會有一些不同的地方。

1.區別

安裝前的區別:概念上的區別(在前面已經說過他們之間的不同)
安裝之後的區別:安裝位置不同(這篇博客要講的內容)

2.RPM包安裝位置

是安裝在默認位置中:rpm包默認安裝路徑

路徑 存放的內容
/etc 配置文件安裝目錄
/usr/bin 可執行的命令安裝目錄
/usr/lib 程序所使用的庫函數保存位置
/usr/share/doc 基本的軟件使用手冊保存位置
/usr/share/man 幫助文檔保存位置

備註: 這些是絕大多數rpm包安裝的位置,遵守這樣的規則。這些安裝位置是固定的,所有的rpm包會基本遵守於這樣的安裝位置,而且這個安裝位置是寫這個rpm包的時候,就已經決定好了 ,一般不建議手工去改這個安裝位置

3.源碼包的安裝位置

安裝在指定位置搭當中,一般是/usr/local/軟件名/ ,當然也可以自己手工指定安裝位置。習慣放在這個地方/usr/local/軟件名 就像Windows建議你把軟件安裝到C盤或者D盤的program的目錄當中的 這個/usr這個目錄的作用是Unix系統的資源目錄。這有一個local目錄,這是本地的意思,這是系統專門爲我們準備的,安裝外來軟件的位置,我們再在這個目錄下創建一個軟件名,然後軟件就放在這個下面,比如源碼包的MySQL就會安裝在/usr/local/mysql目錄下。

4.安裝位置不同帶來的影響

RPM包安裝的服務可以使用系統服務管理命令(service)來管理,例如RPM包安裝apache的啓動方法:
(1) /etc/rc.d/init.d/httpd start(絕對路徑的方式兩種包都能用)         (2)service httpd start(rpm包專用)

(1) /etc/rc.d/init.d/httpd start(這條命令的詳細解讀)

提示: 就是因爲他們的安裝位置不同,所帶來他們的影響。最主要的影響,就是服務的管理方法,就是啓動、停止、重啓動。Linux絕大多數的可執行文件,啓動服務的的程序也是可執行文件,都應該使用絕對路徑來運行。其實也可以用一些其他的方法,比如環境變量,來簡化這樣的操作。Linux當中要想啓動一個執行文件,應該就是使用絕對路徑。環境變量的內容到shell編程中在說。歸根結底要想在Linux當中啓動一個執行文件,不管這個執行文件是我自己寫的,還是系統的命令,還是系統的服務,都應該使用絕對路徑。
開始實驗: 實驗過程截圖如下所示
1.啓動apache服務
在這裏插入圖片描述
2.打開網頁進行測試,在瀏覽器中輸入IP地址 (如果網頁顯示不出來,請關閉防火牆,下面有注意事項)
注意: 需要把你Linux裏的防火牆給關了,不是Windows裏面的防火牆。CentOS6中關閉防火牆命令:service iptables stop 如果是其他版本的,自己可以在網上查找。Centos7中關閉防火牆命令 systemctl start httpd.server
在這裏插入圖片描述
3.在/var/www/html/路徑下創建html文件寫入內容,然後會在網頁中顯示所寫內容
解釋: 因爲我們的apache是新裝的,沒有任何的網頁保存,看到的是測試頁,如果去apache的網頁保存位置。剛纔用rpm –ql apache查詢知道,apache的網站會裝在這裏,然後進入這裏cd /var/www/html/ 進去之後用ls查看沒有任何網頁。然後我們自己寫一個,vi index.html,然後寫入內容保存,就可以在網頁顯示了。
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

(2)service httpd start(這條命令的詳細解讀)

這個絕對路徑太長了,所以redhat的Linux開發了一個簡化命令,service httpd start 這個service在我們啓動網絡服務,就是重啓ip的時候用過,這個命令是Redhat專有的命令,在其他的Linux中並不存在,如果沒有service命令,我們只能靠絕對路徑來啓動。
用的時候有個簡單的報錯,我們的主機名和127.0.0.1迴環ip不能匹配,這個報錯是可以解決的,可以通過修改apache文件修改。暫時性放這,再將網絡服務的時候在說如何修復,但是這個報錯不影響apache的功能。
源碼包安裝的服務則不能被服務管理命令管理,因爲沒有安裝到默認路徑中。所以只能用絕對路徑進行服務的管理。舉個栗子: /usr/local/apache2/bin/apachectl   start  這裏的apache可以隨便起名,什麼都可以,方便你辨識就行。

總結

1. rpm包:可以用絕對路徑服務啓動,也可以用server系統服務管理命令來管理
   源碼包:只能用絕對路徑來管理,因爲安裝路徑,是人爲的指定路徑的安裝路徑。service只能去系統默認的路徑進行查詢。
2. service的執行過程: service爲什麼可以執行,service會自動的在/etc/rc.d/init.d/目錄下,去找有沒有你要啓動的服務名(httpd)。有就啓動,沒有就不啓動。
3. 像service這樣的系統服務管理命令,會到系統默認的位置當中去搜索相關服務。 所以說service命令是不能管理源碼包的安裝的。像類似service這樣的系統服務管理命令,只能管理rpm包安裝時的服務,源碼包安裝的這種服務不能使用。這是因爲安裝位置不同,所帶來的影響。因爲安裝路徑不同,所以帶來的管理方法不同。
4. 源碼包安裝的服務則不能被服務管理命令管理,因爲沒有安裝到默認路徑中,所以只能用絕對路徑進行服務的管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章