linux io100的原因_Linux学习笔记(九)软件包管理
Linux基礎學習筆記精選專欄
目前本專欄包含的內容有:
Linux學習筆記(一)使用文本編輯器Vim
Linux學習筆記(二)系統基礎操作
Linux學習筆記(三)文件和文本的查看
Linux學習筆記(四)目錄操作
Linux學習筆記(五)打包壓縮與解壓縮
Linux學習筆記(六)用戶與用戶組
Linux學習筆記(七)文件與目錄的管理
Linux學習筆記(八)網絡管理
Linux學習筆記(九)軟件包管理
在Linux命令行中如何進行軟件的安裝與管理?
下面是本節(jié)我們將要學習的知識大綱:
一、軟件包管理器
包管理器是方便軟件安裝、卸載,解決軟件依賴關系的重要工具,在不同發(fā)行版本的Linux系統中,有著不同的軟件包管理器:
(1)CentOS、Redhat、Fedora使用yum包管理器,軟件安裝包格式為rpm?
(2)Debian、Ubuntu使用apt包管理器,軟件安裝包格式為deb
二、rpm包與rpm命令
2.1. 讀懂rpm包的名稱
?所有rpm包都是以.rpm后綴結尾的;?軟件版本需要標記,因為在安裝這個軟件包的時候呢,軟件包之間會有一個互相的依賴關系的問題的,軟件版本主要是用來解決依賴關系的;?系統版本:這里的el7表示軟件發(fā)行商,el7表示此包是由 Red Hat 公司發(fā)布,適合在 RHEL 7.x (Red Hat Enterprise Linux) 和 CentOS 7.x 上使用。但是如果系統版本是el6的話,是可以強制安裝到centos7的系統上,但是其軟件的穩(wěn)定性或者版本的兼容性可能會有問題。所以當我們去選擇rpm包的時候,我們第一個要看它的軟件版本,是否符合我們的要求。另外我們還需要查看的系統版本是否與我們系統的發(fā)行版本對應;?平臺:目前服務器大部分都是x86_64的平臺
2.2. 了解rpm常用命令
rpm命令常用參數:
(1)-q查詢軟件包 查詢當前系統中安裝了哪些軟件包;
rpm -qa # 查看系統安裝的所有軟件包顯示當前系統所有已經安裝的軟件包,條目太多如果想要分屏顯示,可以在上面命令的基礎上添加一個管道符|和more參數
rpm -qa | more # 分屏查看系統所有已經安裝的軟件包按空格鍵換瀏覽下一頁;按回車鍵瀏覽下一行,按q退出;我們如果想查看某一個單獨的軟件包是否安裝,可以使用命令:rmp -q
rpm -q vim-common # 查詢是否安裝vim-common(2)-i安裝軟件包 安裝指定軟件包,使用命令rpm -i
rpm -i vim-enhanced-7.4.629-6.el7.armv7hl.rpm如果安裝的時候出現以下報錯:
失敗原因:依賴錯誤,它有一個依賴關系需要我們手動去解決,安裝vim-enhanced時需要先安裝vim-common,再去安裝vim-enhanced,這樣呢我們才不會被依賴關系所困擾。
如果依賴關系非常多,手動解決太麻煩,我們可以使用解決依賴關系有效的工具:yum倉庫,它可以自動幫我們解決依賴關系;
在安裝軟件包的時候,如果軟件包的版本不符合我們的要求,我們還可以通過源代碼來編譯安裝軟件包。
(3)-e卸載軟件包 卸載指定軟件包,使用命令rpm -e
rpm -e vim-common如果想卸載多個軟件包的話,多個軟件包之間用空格隔開即可。在查詢和卸載軟件包時,我們只需要寫上軟件包的名稱即可,但是安裝軟件包的時,需要寫上完整的軟件包名稱。
三、 yum倉庫
yum倉庫也叫yum包管理器,官方提供了yum源(http://mirror.centos.org/centos/7/),但是在國內訪問速度較慢,我們可以使用國內一些公司或者機構提供的倉庫源速度會快很多
3.1. 如果切換國內源呢?
(1)我們可以修改配置文件/etc/yum.repos.d/CentOS-Base.repo來切換國內源;
(2)直接把國內的源配置文件下載下來覆蓋系統中的原配置文件,使用命令:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo然后運行yum makecache生成新的緩存,讓我們的軟件包指向開源鏡像站。
3.2. yum命令常用選項
(1) install 安裝軟件包
使用yum進行安裝不用考慮軟件包的依賴關系,系統會自動幫你找到你需要的依賴包,一并安裝,通過yum install 就可以安裝指定的軟件包;比如當我們想安裝軟件包:vim-enhanced就可以使用命令:
yum install vim-enhanced這些軟件包的安裝都是一個一個的安裝,但是我們使用Linux系統時通常需要一次性安裝多個軟件。比如我們Linux系統要做服務器的話,通常要安裝httpd、mysql、php之類的;如果我們要做c語言開發(fā)的話,通常就需要安裝cmake、gcc之類的,但是一個一個的安裝可能會由于版本問題或者依賴問題導致安裝失敗,這時候yum提供了一種很人性化的安裝方式yum groupinstall ,可以幫我們一次性安裝好一整套軟件包,我們使用命令:
yum grouplist可以查看系統中有哪些可以使用的軟件包套件:可以看到軟件套裝有:最小安裝、計算節(jié)點、基礎設施服務、基礎網絡服務、虛擬化主機、桌面系統、網絡控制臺工具、圖形管理工具、系統管理工具等等,都是可以整套安裝的,比如我們想安裝基礎網絡服務套裝就可以直接使用命令:
yum groupinstall "Basic Web Server"就可以安裝一整套基礎網頁服務器所需要的軟件包,然后輸入y再回車就可以了,注意不要忘了加雙引號哦!
(2)remove 卸載軟件包
如果想把已經安裝的軟件包vim-enhanced卸載,可以通過yum remove 來卸載指定的軟件包。
(3) list 查看軟件包
如何查看系統中已經安裝過哪些安裝包?我們可以使用命令:
yum list來查看當前系統中已經安裝的軟件包;
(4) update 升級軟件包
系統中的軟件怎么更新升級呢,可以使用命令:
yum update來更新升級軟件包,系統會根據yum倉庫里的最新版本,提示哪些軟件包需要重新安裝哪些需要升級,根據命令按y再回車就可以升級到yum倉庫中最新版本了。
四、源代碼編譯安裝
使用yum或者rpm安裝很高效與便捷,這也是yum、rpm包管理工具被用戶廣泛使用的原因。但是很多時候最新版本的軟件還沒有被yum倉庫收錄,我們想使用最新版本的軟件可以通過源代碼編譯安裝我們以安裝opentesty為例,使用源碼編譯的方式進行安裝:
第一步:下載應用程序源代碼
wget https://openresty.org/download/openresty-1.15.8.1.tar.gz第二步:解壓縮gzip文件
tar zxf openresty-1.15.8.1.tar.gz第三步:進入源碼目錄
cd openresty-1.15.8.1第四步:配置源碼環(huán)境
????由于當前的系統環(huán)境以及預先設置在源碼中了,但是沒有真正的和我們系統環(huán)境進行匹配,所以我們使用./config去自動配置一下我們內核的版本、編譯器匹配,再使用--prefix參數來指定應用程序安裝位置,如果不指定安裝位置的話,刪除軟件的時候就會很不方便;
./configure --prefix=/usr/local/openresty如果執(zhí)行命令時出現報錯:/usr/bin/env: perl: No such file or directory原因:未安裝gcc編譯環(huán)境導致?
? 解決辦法:安裝gcc、gcc-c++、perl
yum -y install gcc gcc-c++ perl make kernel-headers kernel-devel安裝完成后如果繼續(xù)報錯:
原因:缺少PCRE庫?
解決辦法:我們再安裝一下PCRE庫
yum install pcre-devel安裝完成后,我們繼續(xù)在當前目錄進行./config配置操作 這是發(fā)現又報錯了:原因:缺少OpenSSL庫
解決方法:安裝OpenSSL庫
yum install openssl-devel一般devel表示該模塊的開發(fā)包 安裝完成后,我們繼續(xù)在當前目錄進行./config配置操作 經過一番折騰,我們的./config終于配置通過了!
第五步:編譯源碼
將源代碼編譯為可執(zhí)行程序,使用-j2參數,意味著我們使用兩個邏輯內核來編譯源碼,再一定程度上加快編譯速度
make -j2實際上我們上一步配置完成后,系統提示我們使用gmake來進行編譯,gmake與make都可以達到同樣的編譯操作目的我們可以參照它的需求來使用命令,同樣可以加上j2參數:
gmake -j2第六步:安裝
執(zhí)行完編譯操作后,我們查看一下源代碼目錄我們編譯好的應用文件、配置文件、依賴的模塊就會出現在build目錄中,這時候我們將編譯好的程序安裝到指定目錄(指定目錄我們在配置那一步已經申明好了)
make install安裝完成后,openresty就會安裝到/usr/local/openresty目錄下:以上,我們就完成了如何通過源代碼編譯來進行安裝我們的軟件。
五、內核升級
升級Linux內核有兩種方式:
?使用包管理器進行安裝;?使用源代碼編譯方式進行安裝;
5.1. 使用包管理器安裝內核
第一步:查看內核版本
????使用命令:
uname -r第二步:升級內核版本 直接使用命令:
yum install kernel系統會返回yum倉庫中,適合當前架構的最新內核版本, ?
如果我們不想安裝最新版本,我們想安裝指定版本則使用命令:
yum install kernel-3.10.0安裝指定版本3.10.0的內核。
第三步:升級已經安裝的其它軟件包和補丁
yum update有時候yum倉庫沒有最新的軟件,我們還可以切換epel倉庫進行安裝,通過yum install epel-release來安裝使用epel倉庫,可以通過epel倉庫來擴展yum倉庫里的文件,一些常用的軟件都可以通過eple倉庫來進行安裝;
5.2.編譯源碼安裝內核
第一步:安裝依賴包
安裝的時候報錯,就新增一個包,所需要的包全部列在這
yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel第二步:下載并解壓縮內核
在linux內核官網(https://www.kernel.org)下載最新穩(wěn)定版本的內核,內核版本在2.6以前,版本編號劃分主版本、次版本(偶數代表穩(wěn)定版,奇數代表不穩(wěn)定版)、末版本,之后就沒有這種劃分了。我們選擇5.7.2版本下載,然后進行解壓縮
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.2.tar.xztar xvf linux-5.7.2.tar.xz -C /usr/src/kernels第三步:配置內核編譯參數
cd /usr/src/kernels/linux-5.7.2/make menuconfig | allyesconfig | allnoconfigmenuconfig表示:圖形化菜單選擇配置 allyesconfig表示:只有系統有的功能全部都配置上 allnoconfig表示:只要最小的內核,什么功能都不要帶,連啟動都啟動不了
第四步:使用當前系統內核配置
cp /boot/config-kernelversion.platform /usr/src/kernels/linux-5.7.2/.config將當前系統以及有的內核配置復制到待安裝的內核目錄中并重命名為.config,這樣就會減少配置的復雜的
第五步:編譯
我們可以使用lscpu命令查看當前CPU的信息,CPU的個數:
使用命令:
make -j4 all對所有的選項進行編譯
第六步:安裝內核
make modules_install make install先安裝內核所支持的模塊,然后在把內核自己安裝過去,然后再自動修改啟動的配置文件,安裝完成后使用命令reboot讓系統進行重啟,并進入引導grub界面,選中最新的內核版本進入系統。
以上,我們使用源碼編譯安裝內核就完成了~
接收更多精彩文章及資源推送,歡迎訂閱我的微信公眾號:小雨編程。
總結
以上是生活随笔為你收集整理的linux io100的原因_Linux学习笔记(九)软件包管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 编写一个函数来验证输入的字
- 下一篇: vue实现div多选全选功能_怎样为你的