rpm和yum軟件管理

linux與window之間文件傳輸–lrzsz

第一步:下載lrzsz
[root@ken ~]# yum install lrzsz -y
第二步:上傳window上的文件至linux當(dāng)中
[root@ken ~]# rz
[root@ken ~]# ls
anaconda-ks.cfg ken1 redis-3.2.12-2.el7.x86_64.rpm test2
a.out lib64jemalloc1-3.6.0-2.mga5.x86_64.rpm test1 test.txt
[root@ken ~]#

第三步:傳linux上的文件至window當(dāng)中
[root@ken ~]# sz test.txt
未來比較好的職業(yè)發(fā)展
運維開發(fā),DBA二拐,架構(gòu)師

rpm簡介

這是一個數(shù)據(jù)庫管理工具器罐,可以通過讀取數(shù)據(jù)庫,判斷軟件是否已經(jīng)安裝,如果已經(jīng)安裝可以讀取出來所有文件的所在位置等介衔,并可以實現(xiàn)刪除這些文件。
rpm:RPM is Redhat Package Manager(遞歸縮寫)
rpm可以完成的操作
安裝軟件
卸載軟件
查詢軟件信息
升級、降級
檢驗
打包程序
rpm僅僅能管理符合rpm格式的程序包撞芍,不能管理源碼格式的程序
程序的格式
1)源碼格式的程序:都是以壓縮方式呈現(xiàn)的(后綴都是.tar.gz|bz2)
2)rpm格式的程序:這都是編譯以后的程序 (后綴都是.rpm)

軟件安裝方式總結(jié)

安裝軟件方式有如下幾種
方式1:編譯安裝
將源碼程序按照需求進行先編譯,后安裝
缺點:
安裝過程復(fù)雜跨扮,而且很慢
優(yōu)點:
安裝過程可控序无,真正的按需求進行安裝(安裝位置、安裝的模塊都可以選擇)
方式2:rpm安裝(用rpm來安裝rpm后綴的安裝包)
優(yōu)點:
安裝和卸載過程非常方便
缺點:
安裝過程不可控(安裝位置衡创,安裝那些功能模塊)
rpm包的依賴關(guān)系非常復(fù)雜
方式3:yum安裝
yum安裝帝嗡,其實就是自動分析rpm包的依賴關(guān)系,然后按照需要的順序依次安裝
方式4:綠色安裝

rpm的操作

一璃氢、安裝rpm包

格式:rpm -ivh 軟件包名
選項
-i:安裝軟件
-v:顯示安裝過程
-h:用#表示安裝進度(# 2%)
-vv:顯示更詳細(xì)的安裝過程信息
-vvv:顯示更更詳細(xì)的安裝過程信息

二哟玷、卸載rpm包

格式:rpm -e 軟件名
選項:
-e:卸載軟件
例子:卸載軟件包ken
rpm -e ken

三、查詢已經(jīng)安裝的rpm包

格式:rpm -q 軟件名
選項:
-q:查看一個已經(jīng)安裝的軟件
-a:查看所有已經(jīng)安裝的軟件all
-l:顯示軟件安裝完成以后生成文件列表(所有文件)list
-i:查看軟件包的相關(guān)信息 info
-d:顯示該軟件所生成的說明性質(zhì)的文檔列表docfiles
-c:查看軟件所生成的配置文件列表configfiles
–scripts:查看軟件相關(guān)的腳本
補充:
安裝前腳本(preinstall)
安裝后腳本(postinstall)
卸載前腳本(preuninstall)
卸載后腳本(postuninstall)

rpm安裝redis

[root@ken ~]# rpm -ivh redis-3.2.12-2.el7.x86_64.rpm
\warning: redis-3.2.12-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
error: Failed dependencies:
libjemalloc.so.1()(64bit) is needed by redis-3.2.12-2.el7.x86_64 #提示需要安裝依賴
[root@ken ~]# rpm -ivh lib64jemalloc1-3.6.0-2.mga5.x86_64.rpm #先安裝所需要的依賴
warning: lib64jemalloc1-3.6.0-2.mga5.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID 80420f66: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:lib64jemalloc1-3.6.0-2.mga5 ################################# [100%]
[root@ken ~]# rpm -ivh redis-3.2.12-2.el7.x86_64.rpm #解決完依賴關(guān)系再去安裝
warning: redis-3.2.12-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing… ################################# [100%]
Updating / installing…
1:redis-3.2.12-2.el7 ################################# [100%]
[root@ken ~]# systemctl restart redis
[root@ken ~]# redis-cli
127.0.0.1:6379> set name ken
OK
127.0.0.1:6379> get name
“ken”
二拔莱、rpm卸載redis
[root@ken ~]# rpm -e redis

三碗降、查詢包
-q:查看一個已經(jīng)安裝的軟件
-a:查看所有已經(jīng)安裝的軟件all
-l:顯示軟件安裝完成以后生成文件列表(所有文件)list
例子1:查詢redis是否安裝
[root@ken ~]# rpm -q redis
package redis is not installed #未安裝
[root@ken ~]# rpm -q redis
redis-3.2.12-2.el7.x86_64 #已安裝

例子2:查看redis生成的文件
[root@ken ~]# rpm -ql redis
/etc/logrotate.d/redis
/etc/redis-sentinel.conf
/etc/redis.conf
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli
/usr/bin/redis-sentinel
/usr/bin/redis-server
/usr/lib/systemd/system/redis-sentinel.service
/usr/lib/systemd/system/redis.service
/usr/libexec/redis-shutdown
/usr/share/doc/redis-3.2.12
/usr/share/doc/redis-3.2.12/00-RELEASENOTES
/usr/share/doc/redis-3.2.12/BUGS
/usr/share/doc/redis-3.2.12/CONTRIBUTING
/usr/share/doc/redis-3.2.12/MANIFESTO
/usr/share/doc/redis-3.2.12/README.md
/usr/share/licenses/redis-3.2.12
/usr/share/licenses/redis-3.2.12/COPYING
/usr/share/man/man1/redis-benchmark.1.gz
/usr/share/man/man1/redis-check-aof.1.gz
/usr/share/man/man1/redis-check-rdb.1.gz
/usr/share/man/man1/redis-cli.1.gz
/usr/share/man/man1/redis-sentinel.1.gz
/usr/share/man/man1/redis-server.1.gz
/usr/share/man/man5/redis-sentinel.conf.5.gz
/usr/share/man/man5/redis.conf.5.gz
/var/lib/redis
/var/log/redis
/var/run/redis

例子3:查看linux系統(tǒng)中所有的包
[root@ken ~]# rpm -qa

例子4:統(tǒng)計當(dāng)前系統(tǒng)一共安裝了多少個軟件
[root@ken ~]# rpm -qa | wc -l

4.rpm查詢文件是哪個程序生成的
[root@ken ~]# which ls
alias ls=’ls –color=auto’
/usr/bin/ls
[root@ken ~]# rpm -qf /usr/bin/ls
coreutils-8.22-21.el7.x86_64

例子1:卸載生成httpd命令的程序
[root@ken ~]# which httpd
/usr/sbin/httpd
[root@ken ~]# rpm -qf which httpd
httpd-2.4.6-80.el7.centos.x86_64

  1. 查看所有已經(jīng)安裝和尚未安裝rpm包
    yum list all 或者yum list 可以列出所有的軟件包
  2. yum list available:僅僅顯示可以安裝但是尚未安裝的rpm包
  3. yum list installed:僅僅顯示已經(jīng)安裝rpm包
    @:表示已經(jīng)安裝rpm
  4. 查看yum倉庫的信息
    yum repolist

軟件管理yum

也是一個rpm包的管理工具,可以實現(xiàn)自動解決rpm包的依賴關(guān)系(自動安裝依賴順序進行rpm包的安裝)
為何rpm包會有依賴關(guān)系塘秦?
制作rpm的人讼渊,在制作rpm包的時候,就將這個rpm的所依賴的軟件的信息保存在這個rpm包的內(nèi)部

yum的工作原理

  1. 需要首先創(chuàng)建一個yum倉庫(rpm包倉庫尊剔、軟件倉庫)
    1)倉庫其實就是一個目錄
    2)倉庫中存放的是rpm包
    3)倉庫中還保存了一個文件爪幻,文件中記錄了該倉庫中所有rpm包的元數(shù)據(jù)信息
    4)元數(shù)據(jù)信息包括
    軟件名
    軟件版本
    軟件是否已經(jīng)安裝
    軟件的依賴關(guān)系
  2. 用 yum 來從倉庫中找軟件進行安裝的過程(比如要安裝軟件A,A依賴B 和C, B依賴C D)
    1)yum首先會掃描保存元數(shù)據(jù)信息的文件须误,檢查A是否已經(jīng)安裝挨稿,如果已經(jīng)安裝,那提示已經(jīng)安裝
    2)如果A尚未安裝京痢,那么掃描A的依賴關(guān)系信息奶甘,會發(fā)現(xiàn)A 依賴B 和C
    3)yum會再次掃描元數(shù)據(jù)文件,檢測B C 是否安裝祭椰,如果都已經(jīng)安裝臭家,那么會開始開始安裝A
    4)如果B C尚未安裝,那么會檢測 B C的依賴關(guān)系方淤,會發(fā)現(xiàn)B依賴C D
    5)yum會再次掃描元數(shù)據(jù)文件钉赁,檢測C D是否安裝,如果都已經(jīng)安裝携茂,那么會開始開始安裝B你踩,然后安裝C,,然后安裝A

yum倉庫

本地:將本地的一個目錄做成yum倉庫,只有當(dāng)前系統(tǒng)可以
網(wǎng)絡(luò):通過網(wǎng)絡(luò)將服務(wù)器上的一個目錄作為yum倉庫带膜,網(wǎng)絡(luò)中的全部主機都可以用
使用yum倉庫的方式吩谦,就是修改yum的配置文件
yum的配置文件
主:/etc/yum.conf
子:/etc/yum.repos.d/*.repo
/etc/yum.conf文件
cachedir=/var/cache/yum/basearch/releasever
指定緩存文件的保存位置,默認(rèn):/var/cache/yum/x86_64/7/
keepcache=0
指定是否保留緩存文件
用yum安裝軟件過程中會從yum倉庫下載并緩存多個資源
1)會將yum倉庫的元數(shù)據(jù)文件緩存到配置文件所指定的路徑中
2)會將要安裝的軟件及其依賴的軟件一并緩存到配置文件指定的目錄中

yum配置文件的構(gòu)成

[localRpm] <<< 指定yum倉庫的id,可以隨便寫膝藕,但是中間不能有空格
name=xxx <<< 指定yum倉庫的名稱逮京,可以隨便寫
enabled=0|1 <<< 指定是否使用該yum倉庫,0表示不使用束莫;1表示使用
gpgcheck=0|1 <<< 指定是否對rpm包做完整性和來源合法性驗證,0表示不做驗證草描;1表示必須做驗證
gpgkey= <<< 指定公鑰文件(如果gpgcheck=1览绿,那么該項不能省略)
baseurl= <<< 指定yum倉庫的url
[repoid]
name=reponame
enabled=1
gpgcheck=0 | 1 #0表示不校驗 、 1表示校驗
baseurl=file:// | http://
gpgkey=file://

yum倉庫的url的表示方式

注意:在指定yum倉庫的時候穗慕,其實不是指向rpm包的目錄饿敲,而是執(zhí)行repodata所在目錄本地yum倉庫file://
例子:比如我的yum倉庫 /myrpm,此時yum倉庫的表示方式就是file:///myrpm
網(wǎng)絡(luò)yum倉庫
http://

創(chuàng)建本地yum倉庫

使用光盤中的rpm包作為yum倉庫
第一步:掛載光盤
mount /dev/cdrom /media
第二步:備份yum自帶的配置文件
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
第三步:創(chuàng)建yum的配置文件逛绵,使用光盤作為yum倉庫

例子1:編寫本地yum文件–未開校驗
[ken]
name=ken1
enabled=1
gpgcheck=0
baseurl=file:///mnt

例子2:編寫本地yum文件–開啟校驗
[ken]
name=ken1
enabled=1
gpgcheck=1
baseurl=file:///mnt
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7

第四步:執(zhí)行yum命令檢測結(jié)果
yum clean all <<< 清空yum緩存的全部數(shù)據(jù)
yum repolist <<< 檢查yum倉庫中有多少個可用的rpm包

yum使用

  1. 安裝軟件
    yum -y install 軟件1 軟件2 軟件3 ….
  2. 卸載軟件
    yum -y remove 軟件1 軟件2 軟件3 ….
  3. 管理包組
    grouplist:查看系統(tǒng)中的全部的包組
    groupinfo 包組名:查看指定包組的信息(包組的作用怀各、包含的軟件)
    groupinstall 包組名:安裝指定的包組
    groupremove 包組名:卸載指定的包組
    CentOS7: 命令行界面升級為圖形化界面
    這時,我們可以通過命令 startx 進入圖形界面术浪,第一次進入會比較慢瓢对,請耐心等待。(可能需要重啟胰苏,命令為reboot)
  4. 管理yum的緩存數(shù)據(jù)
    clean [ packages | metadata | all ]
    all:清除所有數(shù)據(jù)
    packages:僅僅清除rpm包
    metadata:僅僅清理緩存元數(shù)據(jù)
    [root@ken ~]# yum clean all
    Loaded plugins: fastestmirror
    Cleaning repos: ken
    Cleaning up everything
    Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
    Cleaning up list of fastest mirrors
    查看yum源
    [root@ken ~]# yum repolist
    Loaded plugins: fastestmirror
    Determining fastest mirrors
    ken | 3.6 kB 00:00:00
    (1/2): ken/group_gz | 166 kB 00:00:00
    (2/2): ken/primary_db | 3.1 MB 00:00:00
    repo id repo name status
    ken ken1 3,971

制作一個網(wǎng)絡(luò)yum源

思路:在網(wǎng)絡(luò)上準(zhǔn)備一個主機硕蛹,在其中安裝一個web服務(wù)器軟件(比如apache),然后創(chuàng)建一個目錄硕并,在這個目錄中準(zhǔn)備上yum倉庫的全部資源法焰,如果用戶可以通過網(wǎng)絡(luò)訪問到該主機的這個目錄,那么這個目錄就成為網(wǎng)絡(luò)yum倉
實現(xiàn)過程
第一步:配置yum源主機
1)安裝配置apache

2)配置yum倉庫相關(guān)資源

  1. 創(chuàng)建一個目錄倔毙,作為存儲yum資源的目錄
    mkdir /usr/local/apache/htdocs/mysource
  2. 掛載光盤
    mount /dev/cdrom /mnt
  3. 將光盤中的資源復(fù)制到前面所創(chuàng)建的目錄下
    cp /mnt/* /usr/local/apache/htdocs/mysource -rvf
  4. 用瀏覽器訪問一下yum倉庫埃仪,檢查是否可以看到相關(guān)文件
http://ip/mysource

第二步:配置客戶端主機
修改yum配置文件
1)備份原有的配置文件
mkdir bak
mv *.repo bak
vim a.repo
[]
name
enabled=
gpgcheck=
baseurl=http://ip/mysource
2)測試一下

yum repolist

實例演示網(wǎng)絡(luò)yum源–配置epel源

第一步:創(chuàng)建本地yum文件
[root@ken yum.repos.d]# vim net.repo
[net]
name=aliyun
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/

第二步:清空緩存
[root@ken yum.repos.d]# yum clean all

第三步:查看包
[root@ken yum.repos.d]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
ken | 3.6 kB 00:00:00
net | 4.7 kB 00:00:00
(1/5): ken/group_gz | 166 kB 00:00:00
(2/5): ken/primary_db | 3.1 MB 00:00:00
(3/5): net/group_gz | 88 kB 00:00:01
(4/5): net/updateinfo | 1.0 MB 00:00:03
(5/5): net/primary_db | 6.7 MB 00:00:27
repo id repo name status
ken ken1 3,971
net aliyun 13,190
repolist: 17,161

第四步:下載redis
[root@ken yum.repos.d]# yum install redis -y

第五步:驗證redis是否下載成功
[root@ken yum.repos.d]# systemctl restart redis
[root@ken yum.repos.d]# redis-cli
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> set name ken
OK
127.0.0.1:6379> get name
“ken”

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市陕赃,隨后出現(xiàn)的幾起案子卵蛉,更是在濱河造成了極大的恐慌,老刑警劉巖凯正,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毙玻,死亡現(xiàn)場離奇詭異,居然都是意外死亡廊散,警方通過查閱死者的電腦和手機桑滩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人运准,你說我怎么就攤上這事幌氮。” “怎么了胁澳?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵该互,是天一觀的道長。 經(jīng)常有香客問我韭畸,道長宇智,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任胰丁,我火速辦了婚禮随橘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锦庸。我一直安慰自己机蔗,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布甘萧。 她就那樣靜靜地躺著萝嘁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扬卷。 梳的紋絲不亂的頭發(fā)上牙言,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音邀泉,去河邊找鬼嬉挡。 笑死,一個胖子當(dāng)著我的面吹牛汇恤,可吹牛的內(nèi)容都是我干的庞钢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼因谎,長吁一口氣:“原來是場噩夢啊……” “哼基括!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起财岔,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤风皿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后匠璧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桐款,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年夷恍,在試婚紗的時候發(fā)現(xiàn)自己被綠了魔眨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遏暴,靈堂內(nèi)的尸體忽然破棺而出侄刽,到底是詐尸還是另有隱情,我是刑警寧澤朋凉,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布州丹,位于F島的核電站,受9級特大地震影響杂彭,放射性物質(zhì)發(fā)生泄漏墓毒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一亲怠、第九天 我趴在偏房一處隱蔽的房頂上張望蚁鳖。 院中可真熱鬧,春花似錦赁炎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至放棒,卻和暖如春姻报,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背间螟。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工吴旋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厢破。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓荣瑟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摩泪。 傳聞我的和親對象是個殘疾皇子笆焰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1 Linux軟件安裝概述 安裝程序的方式: 通用二進制格式:直接解壓壓縮文件,就可以使用见坑。但一定要注意安裝平臺嚷掠。...
    yichen_china閱讀 1,341評論 0 1
  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實現(xiàn)程序的安裝荞驴、升級不皆、卸載、查詢和校驗熊楼,等等相關(guān)操...
    Dream_wdl閱讀 650評論 0 3
  • Linux程序包的管理需要依賴程序包管理工具霹娄,程序包管理工具可以實現(xiàn)程序的安裝、升級、卸載项棠、查詢和校驗悲雳,等等相關(guān)操...
    piziyang12138閱讀 915評論 0 0
  • Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實現(xiàn)程序的安裝香追、升級合瓢、卸載、查詢和校驗透典,等等相關(guān)操...
    Arroganter閱讀 900評論 0 2
  • 《日精進打卡》 姓名:余磊 公司名稱:惠康國際有限公司 《幸福精進》學(xué)習(xí)營第50期樂觀2組 【日精進打卡第30天】...
    余磊余磊閱讀 172評論 0 0