1. 程式人生 > 其它 >3月25日學習筆記,軟體包管理

3月25日學習筆記,軟體包管理

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
  • 常見的二進位制軟體包

    • RedHat,Centos,Fedora,SUSE常見的安裝包檔案字尾*.rpm,使用命令rpm,rpbulid,yum
    • Ubuntu,Debian,常見字尾格式*.deb相關管理命令dpkg,apt 線上安裝

例如:下載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命令管理