Linux軟件安裝:源碼、RPM、SRPM、YUM功能

1.源碼包的安裝

1.下載源碼包

源碼包 後綴:.tar.gz

2.需要安裝gcc

yum list gcc
yum install

3.解壓源碼包

cd Desktop/
ls 
tar zxvf ......

4.生成makefile文件(如果沒有)

進入解壓後的文件目錄中,看是否有makefile文件
如果沒有,運行configure文件生成makefile文件
./configure --help
mkdir /opt/xx
./configure --prefix=/opt/xx/
如果不指明安裝目錄的話,默認安裝在/usr/local/apache2/的目錄下

5.編譯

make(當前目錄直接運行)

6.安裝

make install (安裝到/opt/xx裏面)

注:安裝Apache軟件源碼包httpd.tar.gz
安裝wine.tar.gz,作用是:在Linux下運行windows軟件(需要安裝3-4個小時)


2.使用RPM包(RedHat Package Management)

  • 把已有的源碼包,編譯成爲RPM包,去掉了源碼包部分功能,只是源碼包功能的一個子集
  • RPM包自帶的功能無法取消,可能出現冗餘功能,也可能因此出現漏洞;而源碼包功能可以根據需要進行使用,可以取消無關的功能。因而源碼包的定製性很強,RPM包的定製性不強,但是安裝起來非常方便
  • RPM包後綴:.rpm
  • 可以實現軟件的安裝,查詢,卸載,更新。。。
  • rpm功能由第一個選項決定的,如果第一個選項是i的話,代表install
rpm -ivh
-i:install
-v:安裝進度
-h:數字簽名

.

rpm -ivh linuxqq-v1.2-betal.i386.rpm
                版本    系統    後綴

.

qq

.

q:查詢    a:所有
rpm -qa
rpm -qa | grep linuxqq

rpm包安裝路徑已經指定好默認路徑
查詢路徑:

rpm -ql linuxqq

查詢配置文件:

rpm -qc linuxqq

查詢幫助文檔:

rpm -qd linuxqq

查詢安裝信息:

rpm -qi linuxqq

查看某個文件是由那個軟件安裝出來的:

rpm -qf /etc/passwd

驗證數字簽名(用公鑰,沒有的話爲not OK):

rpm -K vsftpd-2.0.5-16.e15_4.1.i386.rpm

所以要導入CentOS的公鑰:

rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

驗證(有公鑰,驗證通過爲OK)

rpm -K vsftpd-2.0.5-16.e15_4.1.i386.rpm

查看軟件包(p:package)

rpm -qlp linuxqq-v1.0.2-betal.i386.rpm

安裝新的軟件包:

rpm -ivh /mnt/CentOS/vsftpd-2.0.5-15.e15_4.1.i386.rpm
rpm -qa | grep vsftpd
rpm -qc vsftpd
rpm -qd vsftpd
rpm -ql vsftpd
rpm -qi vsftpd

.e:eraser

rpm -e vsftpd
rpm -qa | grep vsftpd

.UUpdate

rpm -Uvh vsftpd-2.0.5-16.e15_4.1.i386.rpm

如果沒有此元件,就直接安裝所需軟件;
如果已經安裝了此軟件,就先卸載,再安裝此軟件。

如果要是更新內核的話,就需要使用:
rpm -ivh kernel......
這樣可以保證防止因爲新版本內核不穩定造成的安全問題,因爲這個命令沒有刪除舊版本的內核

(rpm)
問題:假如安裝A軟件包,提示需要先安裝B軟件包,然後安裝B軟件包,提示需要先安裝C軟件包。。。。。。
解決:

rpm -ivh --force xxxxxxx
(但是不推薦使用這種方式)

推薦使用yum安裝解決這個問題!


3.YUM安裝

原理:
yum服務器:提供發送要安裝以及相互依賴的安裝包
yum客戶端:接收到所有安裝包,存於內存中,安裝完成後刪除

問題:
1.爲什麼服務器可以知道哪些安裝包之間有依賴關係?
2.爲什麼客戶端知道去哪個服務器下載所需要的安裝包?

1yum

.Yum

cd /etc/yum.repos.d/
ls
rm -rf aa.repo
vim xx.repo
    [aa](這裏是yum源,隨便寫)
    name=aaaaa #(隨便寫,注意name後面不能出現空格,name必須要出現)
    #baseurl=ftp://192.168.50.250/pub/
    baseurl=file://mnt/ #(根下面的光盤掛載點/mnt/)
    enabled=1 #(enabled:代表是否啓用這個yum源,0代表不起用)
    gpgcheck=0 #(0代表不對軟件包進行密鑰驗證,1代表對軟件包進行密鑰驗證,如果是1,需要將CentOS公鑰導入過來)
yum clear all (清除緩存)
yum list gcc

xx.repo文件可以寫入多個源,如果一個源沒有找到,會自動跳入下一個源:

[aa]
name=aaaaa
baseurl=file://mnt/ #(根下面的光盤掛載點/mnt/)
enabled=1
gpgcheck=0 


[bb]
name=bbbbbb
baseurl=ftp://192.168.60.250/pub/
enabled=1
gpgcheck=0
yum clear all

.

yum list vsftpd
yum list vsftpd\*(如果忘記後面那個是什麼單詞,可以使用 “轉義*”)
yum list vsftpd* (如果是*,那麼代表前面只要是vsftp後面包含任意個字符的相似文件,不夠準確)

還可以使用search查找
yum search vsftp(將包含vsftp的文件包全部找到)

.

yum remove vsftpd(後面提示是否卸載,鍵入y)
yum remove vsftpd -y(不需要提示的話,可以先直接加入 -y 選項)
yum -y remove vsftpd

.

yum install vsftpd\*
yum install vsftpd\* -y
yum -y install vsftpd\*

想知道某個包是由那個命令產生的可以使用

yum whatprovides */
yum whatprovides */iostat(查看iostat命令是由什麼包產生的)

這個命令原理類似查找命令:
rpm -qld /mnt/CentOS/*:找每個安裝文件下可能產生的安裝目錄

yum groplist(列出組別)
system-config-packages &

列出組別
yum grouplist 'KDE*'
安裝組別
yum groupinstall 'KDE (K 桌面環境)'
刪除組別:
yum groupremove 'KDE (K 桌面環境)'

2)yum

ifconfig eth0
df -h
網絡配置器 Host-Only(使網絡互通)
ping xxxxx
iptables -L -n 
iptables -F (清除防火牆)
ping xxxxx
ifconfig eth0
setup(網絡配置)
service network restart 
ping xxxxx
clear

現在把這臺新機器設置爲yum源
CD/DVD(IDE)瀏覽IOS鏡像,把光盤掛載上來
選擇已連接

mount /dev/cdrom/mnt(進行掛載)
ls /mnt/
vim /etc/yum.repos.d/xx.repo
    [aa]
    name=aaa
    baseurl=file:///mnt
    enabled=1
    gpgcheck=0
yum install vsftpd -y 
iptables -F 
services iptables stop 

services iptables restart 
ftp 192.168.60.251

cp -rvf /mnt/CentOS/* /var/ftp/pub/
ls /var/ftp/pub/

ls /var/ftp/pub -1 | wc -l(查看一共有多少個包)
ls -1 /mnt/CentOS/wc-l

yum install createrepo -y(安裝這個包)
createrepo -v /var/ftp/pub | grp ^d

yum clear all
yum list gcc 
yum list vsftpd -y 

cd /var/ftp 
ls 
ll 
mkdir qq
cd qq/
ls 
cp ~/Desktop/linuxqq-v1.0.2-betal.i386.rpm
ls 
cd ..
createrepo -v qq/

vim /etc/yum.repose.d/aa.repo
    [aa]
    name=aaaaa
    baseurl=ftp://192.168.60.251/pub
    enabled=1
    gpgcheck=0

    [bb]
    name=bbb
    baseurl=ftp://192.168.60.251/pub
    enabled=1
    gpgcheck=0

yum clear all
yum list linuxqq

pkgs.org參考網站
把源碼包編譯成爲RPM包???怎麼完成!
發佈了40 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章