3月25日學習筆記,軟體包管理
阿新 • • 發佈:2022-03-27
day19學習筆記(3.25)
軟體包管理
什麼是軟體包?
軟體包是電腦程式program,是一個程式語言寫好的程式碼檔案,裡面包含了該語言的指令及各種字元等。
- windows系統:qq.exe
- macos系統:qq.dmg
- linux系統:qq.rpm
- 是一個將二進位制命令(程式原始碼,經過編譯後的一個單個可執行命令產物)+配置檔案+資料檔案,打包好的一個單個檔案,
linux系統經常遇見的軟體包格式
linux有很多可以安裝的軟體,這些軟體的安裝包可分為兩種,分別是原始碼包和二進位制包
-
原始碼包(需要編譯後使用,安裝難度大,定製化強)
- 編譯型語言原始碼
- go語言,需要安裝golang編譯器,將程式碼編譯成二級制檔案執行
- C語言,需要安裝gcc編譯器,將程式碼編譯成二進位制檔案執行
- 解釋型語言原始碼
- bash語言,需要bash直譯器才能執行,執行過程從上往下一行一行執行
- pythonn語言,同樣需要python解釋,執行程式需要開啟python直譯器
- 指令碼程式原始碼
- bash為主,pyhton為輔
- 編譯型語言原始碼
-
二進位制包(不需要程式碼編譯,拿來即用,安裝簡單,路徑受限,定製性差)
- 已經完成編譯的軟體包
- centos平臺可以使用的rpm包
- tar.gz格式的壓縮包,解壓即可使用,是一些特殊的二進位制包,支援二進位制包下載的某些軟體
- 二進位制原始碼包(瞭解)
- 下載後還需要自己再構建rpm(mysql-community-5.7.25-1.el7.src.rpm),構建命令
rpm,rpmbuild
- 下載後還需要自己再構建rpm(mysql-community-5.7.25-1.el7.src.rpm),構建命令
- 已經完成編譯的軟體包
-
常見的二進位制軟體包
- RedHat,Centos,Fedora,SUSE常見的安裝包檔案字尾
*.rpm
,使用命令rpm,rpbulid,yum
- Ubuntu,Debian,常見字尾格式
*.deb
相關管理命令dpkg
,apt 線上安裝
- RedHat,Centos,Fedora,SUSE常見的安裝包檔案字尾
例如:下載nginx軟體包,會有如下格式
- nginx-1.10.rpm #編譯好的rpm包
- nginx-2.3.3.tar.gz #nginx原始碼包
- nginx-2.3.3-x86-64.tar.gz #解壓即用的nginx二進位制包,提示可以在64位機器上直接執行的nginx命令
- nginx-el7-src.rpm #rpm二進位制包,還需要再次構建
rpm包安裝管理命令
- 建立
http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm
線上下載
有很多軟體的官網,以及第三方軟體倉庫,會提供rpm包的下載功能
http://rpm.pbone.net/
www.rpmfind.net
官網下載(推薦)
http://nginx.org/packages/
根據你的機器cpu架構,以及系統版本,找到如下連線(如centos7,x86_64b)
本地光碟映象rpm包
centos7.iso映象檔案,內建了絕大多數軟體的rpm包
1、光碟,插入伺服器光碟機(檢視虛擬機器右下角小光碟圖示)
2、在系統中找到光碟資訊
lsblk #檢視系統中磁碟掛載項
3、掛載操作,讀取光碟的內容
mount /dev/sr0 /mnt #掛載sr0光碟到mnt目錄
mount: /dev/sr0 is write-protected, mounting read-only
#/mntmount: /dev/sr0 防寫,將以只讀方式掛載
4、檢視光碟中的rpm包列表,拷貝到相應目錄
ls /mnt/Packages/ #這個目錄下,能找到需要的軟體包的名字,即可去安裝它
cp /mnt/Packages/vim-enhanced-7.4.160-4.el7.x86_64.rpm /opt/ #將vim工具拷貝到opt目錄下
rpm -ivh vim-enhanced-7.4.160-4.el7.x86_64.rpm #安裝
5、取消掛載
umount /dev/sr0
6、rpm包安裝需要手動解決依賴關係
7、發現本地光碟是沒有nginx的,只能用其他形式裝nginx
-
安裝rpm包
1、下載 wget wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm 2、安裝 rpm -ivh rpm -ivh nginx-1.10.0-1.el7.ngx.x86_64.rpm
-
查詢
rpm -qa 軟體名 引數: -q 查詢 -a 全部 -i 顯示詳細資訊 例如: rpm -qa nginx #可用於查詢系統是否安裝 nginx-1.10.0-1.el7.ngx.x86_64 rpm -qi nginx
-
升級
rpm -Uvh 升級軟體 -U升級
-
刪除
rpm -e 需要解除安裝的軟體,需要正確的名字 nginx
-
總結
rpm -qf 檔名 #根據檔名查詢屬於哪個軟體包
rpm -ql 軟體包名 #列出該軟體包都生成了什麼檔案
rpm -ivh 軟體包 #安裝
rpm -e 軟體包名字 #解除安裝
rpm -Uvh 軟體包 #升級
rpm安裝軟體,需要解決他們之間的依賴關係
有些工具比光碟的版本要新,所以要解除安裝乾淨
rpm的依賴衝突,一定要是,一層一層去解決,不能跳級
原始碼包的安裝管理命令
-
建立
案例:安裝淘寶nginx工具 1、原始碼安裝nginx工具,編譯安裝淘寶nginx wget https://tengine.taobao.org 準備linux編譯環境 yum install -y gcc make gcc-c++ ncurses-devel #用於編譯安裝c語言程式碼 yum install golang -y #用於編譯golang程式碼的環境 2、解壓縮,進行編譯安裝 tar -zxvf tengine-2.3.3.tar.gz cd tengine-2.3.3/ #進入目錄 yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel #ux系統支援https的模組,就是安裝openssl模組 ./configure --perfix=/opt/tngx230 #--with-http_ssl_module #執行編譯引數,讓nginx的安裝,可以擴充套件其他功能 make && make install #開始編譯安裝 cd /opt/tngx230 #進入目錄檢視是否生成 vim /etc/profile #新增到環境變數PATH PATH=/opt/tengx230/sbin/:$PATH curl -I #驗證nginx的資訊
-
查詢
ls /lpt/tngx230/ #檢視目錄的資訊
-
升級
rm命令刪除舊版本整個目錄,重新安裝新版本
-
刪除
rm -rf /opt/tngx230 #直接刪除即可
解壓即用軟體包實踐
下面以安裝java為例
找到官網地址https://www.oracle.com/java/technologies/downloads/
複製連結https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz.sha256
解壓縮
tar -zxvf jdk-18_linux-x64_bin.tar.gz
由於java比較特殊,必須配置linux的環境變數,才可使用
yum自動化軟體管理命令
yum源官網,到映象站,crntos和epel
https://developer.aliyun.com/
配置2個源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
備份預設的yum倉庫配置檔案
cd /etc/yum.repos.d #進入yum源預設的配置檔案目錄,備份所有的*.repo檔案即可
mkdir bak_repo
mv *.repo ./bak_repo
下載新的yum倉庫檔案
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
常見用法
yum clean all #清除快取
yum makecache #更新快取
yum install xxx -y #自動安裝
yum remove xxx -y #刪除
總結
安裝方式有三種:
rpm手動安裝:可以使用光碟機安裝或者網上安裝,需要手動解決依賴關係,可以使用rpm -ql 查詢,rpm -e 刪除,日誌及配置檔案需要手動rm刪除
yum自動安裝:yum自動解決依賴關係,可以使用systemctl命令管理rpm包
編譯安裝:軟體裝到一個目錄下,管理目錄即可,無法使用yum命令管理