rpm,yum,源碼編譯安裝,gzip、bzip2、tar壓縮打包


Linux中安裝軟件的三種方式

與windows類似,在Linux系統上也可以安裝各種應用程序,或稱之為軟件包

1.rpm安裝
   rpm安裝預先編譯打包,安裝簡單,下載下來之后直接安裝。
   優點:已經制作好的安裝程序
	 缺點:不能自己解決依賴
		
		
2.yum安裝
   yum安裝基於rpm安裝
   優點:增加了自動解決依賴的功能。
	
  
3.源代碼編譯安裝
   源代碼安裝通過編譯源代碼,得到軟件包。
   優點:可以自定制軟件包。
   缺點:比較復雜   

鏡像文件

# 掛載:
  mount /dev/sr0 /opt/
  或
  mount /dev/cdrom /munt/
	
# 卸載:
  umount /dev/sr0  #掛載源
  或
  umount /opt  #掛載點

# 強制卸載:
  umount -l  [掛載源或掛載點]
  
# 查看掛載信息
  df


# 查看/操作設備內容需要先掛載
[root@localhost dev]# mount /dev/sr0 /opt/
 mount: /dev/sr0 寫保護,將以只讀方式掛載
 
# 查看是否掛載成功
[root@localhost ~]# df
 文件系統     1K-塊    已用     可用 已用% 掛載點
 /dev/sr0   4480476  4480476   0  100% /opt
 
# 瀏覽光盤內容
[root@localhost dev]# ls /opt/  
 CentOS_BuildTag  EULA  images    LiveOS repodata     RPM-GPG-KEY-CentOS-Testing-7
 EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL
 
# 查看光盤上的安裝包。格式都是以.rpm結尾的
[root@localhost dev]# ls /opt/Packages/
 ......
 zlib-1.2.7-18.el7.x86_64.rpm
 zlib-devel-1.2.7-18.el7.x86_64.rpm
 zsh-5.0.2-31.el7.x86_64.rpm
 zziplib-0.13.62-9.el7.x86_64.rpm
 
# 查看自己當前平台
[root@localhost ~]# uname -m
 x86_64
# 查看系統內核信息
[root@localhost ~]# uname -r
 3.10.0-1160.49.1.el7.x86_64

1、RPM安裝

  • rpm包來源
    • 1、來源網絡下載
    • 2、來源本地:自己的鏡像自帶的rpm包
# 安裝:rpm -ivh [軟件包名稱]
   -v  #顯示安裝過程
   -i  #顯示安裝包的詳細信息
   -h  #安裝包哈希標記
	
# 卸載:rpm -e [軟件包名稱]
# 升級:rpm -Uvh [軟件包名稱]

 1、下載安裝包
		
 2、安裝
  [root@localhost ~]# rpm -qip /opt/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm  #本地鏡像
  或
  [root@localhost ~]# rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm 
  Preparing...                    ################################# [100%]
  Updating / installing...
  1:zsh-5.0.2-34.el7_8.2          ################################# [100%]
	 
	
 3、卸載
	[root@localhost ~]# rpm -e zsh
	
	
 4、更新
  [root@localhost ~]# rpm -Uvh zsh-5.0.2-34.el7_8.2.x86_64.rpm 
  Preparing...                   ################################# [100%]
  Updating / installing...
  1:zsh-5.0.2-34.el7_8.2         ################################# [100%]


 5、軟件包名稱
  zsh-5.0.2-34.el7_8.2.x86_64.rpm 
   zsh    #軟件包名稱
   5.0.2  #版本號
   34     #第多少次編譯
   el7_8(CentOS 7)#適用的平台
   x86_64 #適用的系統位數
   rpm    #擴展名


 6、查看已安裝軟件包的使用配置文件
   [root@localhost ~]# rpm -qc  zsh
	
 7、查看已安裝包的描述信息	
   [root@localhost ~]# rpm -qi zsh

 8、查看是否安裝某軟件
   [root@localhost ~]# rpm -q zsh

 9、查看當前系統安裝了哪些rpm軟件
   [root@localhost ~]# rpm -qa
		
 10、查看軟件的安裝路徑,查看安裝了哪些東西
   [root@localhost ~]# rpm -ql zsh

 上傳與下載:yum install lrzsz -y 
 
 
擴展:
 1、查看未安裝包的軟件信息
   [root@localhost ~]# rpm -qip /opt/Packages/snappy-1.1.0-3.el7.x86_64.rpm 

2、yum安裝

  • yum是CentOS的軟件包管理工具,自動為我們解決軟件依賴問題。yum包管理工具必須使用yum源指定軟件下載地址去下載需要安裝的軟件包。
    • 配置的路徑是:/etc/yum.repos.d
  • 要成功的使用 YUM 工具安裝更新軟件或系統,就需要有一個包含各種 rpm 軟件包的repository(軟件倉庫),這個軟件倉庫我們習慣稱為 yum 源。(可以是本地源、網絡源)
基於rpm安裝,自動解決依賴。
# yum源命令:
   # 查看yum配置文件
   [root@localhost ~]# ls /etc/yum.repos.d

   # 查看當前的有哪些倉庫地址
   [root@localhost ~]# yum repolist 
    
   # 查看包括啟用或禁用的所有yum倉庫
   [root@localhost ~]# yum repolist all
    
   # 清空yum緩存
   [root@localhost ~]# yum clean all 
      
   # 生成yum緩存
	 [root@localhost ~]#yum makecache
    
    
# yum常用的基礎命令: 

 # 1、安裝軟件包的命令
   yum install [軟件包的名稱] 	
   參數:
    -y : 免交互安裝
    --nogpgcheck : 忽略公鑰認證


 # 2、卸載軟件(直接將軟件的依賴包一起刪除)
   yum remove [軟件包名稱] 
   參數:
    -y : 免交互移除


 # 3、更新軟件
   yum update [軟件包名稱]   
   參數:
    -y : 免交互更新
	
 ps:如果跟具體的軟件包名稱,就會更新指定軟件包;如果沒有指定,則更新系統所有的需要更新的軟件包。
	
	
 # 4、查看當前系統需要更新軟件
   yum check-update	
   
   
 # 5、重裝軟件
   yum reinstall [軟件包名稱]	
   
	
 # 6、搜索軟件包
   yum search [軟件包名稱]	
	
	
yum安裝的生命周期:
 1、執行yum install zsh -y
 2、去 /etc/yum.repos.d/ 找以 .repo 結尾的文件
 3、通過 .repo 文件中的鏈接,找到對應的軟件倉庫
 4、在對應的軟件倉庫中下載指定的軟件包
 5、緩存至 /var/cache/yum/
 6、根據緩存,安裝軟件包
 7、刪除軟件包(keepcache 是否保存緩存,0 代表不保存 , 1 代表保存)

知識儲備:

# wget:下載文件
如果系統中沒有wget,執行如下命令:yum install wget -y
  wget url
   參數:
    -O  #指定下載文件的路徑及名稱
		
    
# curl:讀取文件
  curl :讀取文件
   參數:
    -o  #指定下載文件的路徑及名稱
    -k  #免證書認證
	
curl命令是⼀個利⽤URL規則在命令⾏下⼯作的⽂件傳輸⼯具。它⽀持⽂件的上傳和下載,所以是綜合傳輸⼯具,
但按傳統,習慣稱curl為下載⼯具。作為⼀款強⼒⼯具,curl⽀持包括HTTP、HTTPS、[ftp]等眾多協議,還⽀
持POST、cookies、認證、從指定偏移處下載部分⽂件、⽤戶代理字符串、限速、⽂件⼤⼩、進度條等特征。做⽹
⻚處理流程和數據檢索⾃動化,curl可以祝⼀臂之⼒。

 [root@localhost ~]# curl -o 123.png https://www.xxx.com/img/hello.png
 # ps: 如果遇到下載提示⽆法簡歷SSL鏈接,使⽤-k選項或者--insecure
  curl -k -o 123.png https://www.xxx.com/img/hello.png
  
  
# sz下載文件與rz上傳文件
 ps:  yum install lrzsz -y

sz : 下載文件(從linux系統下載文件到windows)
系統默認沒有該命令,需要下載:yum install lrzsz -y
將服務器上選定的⽂件下載/發送到本機,

# rz : 上傳文件(將windows文件上傳至Linux)

  rz [文件路徑]
	# 系統默認沒有該命令,需要下載:yum install lrzsz -y
  # 運⾏該命令會彈出⼀個⽂件選擇窗⼝,從本地選擇⽂件上傳到服務器。
  [root@localhost opt]# rz # 如果⽂件已經存,則上傳失敗,可以⽤-E選項解決
  [root@localhost opt]# rz -E # -E如果⽬標⽂件名已經存在,則重命名傳⼊⽂件。新⽂件名將添加⼀個點和⼀個數字(0..999)
        
 rz 回車即可選擇上傳文件
 也可以進入都某個路徑下將文件直接拖入~ (人性化)  

本地&遠程倉庫搭建

本地倉庫:
  # 1、下載安裝必須的軟件包yum-utils,createrepo
    yum install yum-utils createrepo -y
		
  # 2、創建軟件包目錄,存放軟件包的
    mkdir -p /opt/repos

  # 3、下載對應的軟件
    mkdir -p /opt/repos/Packages
			
    把對應的軟件包復制到 Packages 目錄中
			
  # 4、初始化軟件倉庫
		 createrepo /opt/repos
	
  # 5、添加yum源,將軟件包復制到yum倉庫目錄
     cd /etc/yum.repos.d/
     mkdir backup
     mv *.repo backup/
     [root@localhost ~]# yum-config-manager --add-repo=file:///opt/repos

     [root@localhost /etc/yum.repos.d]# cat opt_repos.repo 

     [opt_repos]	#源的名稱
      name=added from: file:///opt/repos	 #源的簡介
      baseurl=file:///opt/repos	#源的下載地址
      enabled=1	#是否啟用:1啟用 ,0不啟用

  # 6、清空yum緩存
     yum clean all 
      
  # 7、生成yum緩存
     yum makecache
		
  # 8、測試
     yum install zsh
	
	遠程倉庫
		參考本地版前7步
		
    # 1、安裝遠程訪問軟件(Nginx)
      # ① 配備CentOS-7 源
      [root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repohttps://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
			# ② 配備EPEL源
      [root@localhost ~]# yum-config-manager --add-repo=https://repo.huaweicloud.com/epel/7/x86_64/
			# ③ 安裝nginx
      [root@localhost ~]# yum install nginx --nogpgcheck

    # 2、修改nginx的配置文件
      https://nginx.org/en/docs/http/ngx_http_autoindex_module.html
			
      [root@localhost ~]# vim /etc/nginx/nginx.conf
      # include /etc/nginx/conf.d/*.conf;
      root         /opt/repos;
      autoindex on;
			
      # 測試更改是否成功
      [root@localhost ~]# nginx -t
			
      # 啟動nginx
      [root@localhost ~]# systemctl start nginx
			
      # 關閉selinux和firewalld
      [root@localhost ~]# systemctl disable --now firewalld
      [root@localhost ~]# setenforce 0
		
		
		
		
    # 3、在測試機
      [root@localhost yum.repos.d]# yum install yum-utils -y

      # 備份源
      [root@localhost yum.repos.d]# mkdir backup
      [root@localhost yum.repos.d]# mv *.repo backup/

      # 添加源
      [root@localhost yum.repos.d]# yum-config-manager --add-repo=http://192.168.15.101/

      # 刷新緩存
      [root@localhost yum.repos.d]# yum clean all 
      [root@localhost yum.repos.d]# yum makecache

    # 4、測試
      [root@localhost ~]# yum install zsh -y

3、源碼包安裝(編譯安裝)

  • 1.源碼包是什么

    • 源碼包指的是開發編寫好的程序源代碼,但並沒有將其編譯為一個能正常使用的工具。-
  • 2.為什么要學習源碼包

    • 1、部分軟件官網僅提供源碼包,需要自行編譯並安裝。
    • 2、部分軟件在新版本有一些特性還沒來得及制作成rpm包時,可以自行編譯軟件使用其新特性。
  • 3.源碼包的優缺點

    • 優點是:
      • 可以自行修改源代碼
      • 可以定制需要的相關功能
      • 新版軟件優先更新源碼
    • 缺點是:
      • 相對yum安裝軟件會復雜很多。
      • 標准化實施困難,自動化就無法落地。
  • 4.源碼包如何獲取

    • 常見的軟件包都可以在官網獲取源碼包,比如 apache、nginx、mysql等等
  • 5.將源碼包編譯為二進制可執行文件步驟如下,簡稱安裝三步曲

編譯安裝過程

注意: 此方法不是百分百通用於所有源碼包,建議拿到源碼包解壓后,進入到目錄找相關的README幫助文檔

編譯安裝

# 1、基礎環境准備
  [root@localhost ~]# yum install -y gcc make wget

# 2、下載源碼包
	[root@localhost ~]# wget https://nginx.org/download/nginx-1.20.2.tar.gz
		
# 2、解壓源碼包, 並進入相應目錄
	[root@localhost ~]# tar -xf nginx-1.20.2.tar.gz
  [root@localhost ~]# cd nginx-1.20.2
  
# 3、配置相關的選項,並生成Makefile
  [root@localhost nginx-1.20.2]# ./configure 

# 4、將Makefile文件編譯可執行二進制程序
	[root@localhost nginx-1.20.2]# make

# 5、將二進制文件拷貝至對應的目錄中
	[root@localhost nginx-1.20.2]# make install

# 6、啟動
	[root@localhost ~]# /usr/local/nginx/sbin/nginx
  # 啟動后瀏覽器訪問ip地址即可查看是否安裝成功
  
# 7、關閉
	[root@localhost ~]# /usr/local/nginx/sbin/nginx -s stop

知識儲備:
	tar -xf [壓縮包名稱]


知識拓展:
  自定制安裝,修改源代碼包名以 nginx 為例
  # 1、關閉nginx服務后,刪除源代碼包,目錄
  [root@localhost ~]# rm -rf nginx-1.20.2
  [root@localhost ~]# rm -rf /usr/local/nginx/
  # 2、重新解壓源碼包, 並進入相應目錄
	[root@localhost ~]# tar -xf nginx-1.20.2.tar.gz
  [root@localhost ~]# cd nginx-1.20.2
  # 3、找到對應的版本,版本號
  [root@localhost nginx-1.20.2]# grep -R 'nginx' ./
  [root@localhost nginx-1.20.2]# grep -R '1.20.2' ./
    ./src/core/nginx.h:#define NGINX_VERSION   "1.20.2"  #可以看到版本的路徑
  # 修改文件,修改完后:wq退出
  [root@localhost nginx-1.20.2]# vim ./src/core/nginx.h

    '''
  
   /*
    * Copyright (C) Igor Sysoev
    * Copyright (C) Nginx, Inc.
    */


    #ifndef _NGINX_H_INCLUDED_
    #define _NGINX_H_INCLUDED_


    #define nginx_version      1020002
    #define NGINX_VERSION      "1.0" # 修改版本
    #define NGINX_VER          "GengFeng/" NGINX_VERSION  #修改名稱

    #ifdef NGX_BUILD
     '''
  # 配置相關的選項,並生成Makefile
  [root@localhost nginx-1.20.2]# ./configure 

  # 將Makefile文件編譯可執行二進制程序
  [root@localhost nginx-1.20.2]# make

  # 將二進制文件拷貝至對應的目錄中
  [root@localhost nginx-1.20.2]# make install

  # 啟動
  [root@localhost ~]# /usr/local/nginx/sbin/nginx
  # 啟動后瀏覽器訪問ip地址即可查看是否安裝成功
  
  # 修改后看到的是已改過的名稱和版本,以 http://192.168.15.100/sdasdas 為例
     404 Not Found
     GengFeng/1.0

壓縮打包

1、 什么是打包壓縮

打包指的是將多個⽂件和⽬錄合並為⼀個特殊⽂件,然后將該特殊⽂件進⾏壓縮,最終得到⼀個壓縮包

2、為什么使⽤壓縮包

  • 1.減少占⽤的體積

  • 2.加快⽹絡的傳輸

3、Windows的壓縮和Linux的有什么不同

  • windows: zip rar(linux不⽀持rar)
  • linux: zip tar.gz tar.bz2 .gz

如果希望windows的軟件能被linux解壓,或者linux的軟件包被windows能識別,選擇zip.

PS: 壓縮包的后綴不重要,但⼀定要攜帶.

4、Linux下常⻅的壓縮包類型

格式 壓縮工具
.zip zip 壓縮工具
.gz gzip 壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用)
.bz2 bzip2 壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用)
.tar.gz 先使用tar 命令歸檔打包,然后使用 gzip 壓縮
.tar.bz2 先使用tar 命令歸檔打包,然后使用 bzip 壓縮

Linux常見的壓縮包有哪些?

  • gzip
  • bzip2

gzip打包與壓縮

  • 使用gzip方式進行壓縮文件
# 壓縮命令:gzip [壓縮文件]
# 解壓命令:gzip -d [壓縮包]

[root@localhost ~]# gzip file       #對文件進行壓縮
[root@localhost ~]# zcat file.gz    #查看gz壓縮后的文件
[root@localhost ~]# gzip -d file.gz #解壓gzip的壓縮包

#使用場景:當需要讓某個文件不生效時
[root@localhost ~]# gzip CentOS-Vault.repo --> CentOS-Vault.repo.gz
[root@localhost ~]# zcat CentOS-Vault.repo.gz --> 查看不想解壓的壓縮包文件內容

bzip2打包與壓縮

# 壓縮命令:bzip2 [壓縮文件]
# 解壓命令:bzip2 -d [壓縮包]
 
[root@localhost ~]# bzip2 file        #對文件進行壓縮
[root@localhost ~]# bzmore file.bz2   #查看bz2壓縮后的文件
[root@localhost ~]# bzip2 -d file.bz2 #解壓bzip2的壓縮包 

tar打包與壓縮

  • tar是linux下最常用的壓縮與解壓縮, 支持文件和目錄的壓縮歸檔
tar : 打包的命令
  參數:
    -f  #指定包文件名稱,多參數f寫最后
    -c  #打包
    -v  #輸出命令的打包或解包的過程
    -x  #解壓(解壓不需要指定壓縮類型)
    -t  #查看壓縮包內部的內容
    
    
    -z  #使用gzip壓縮壓縮包
    -j  #使用bzip2壓縮壓縮包
    -J  #使用xz壓縮歸檔后的文件(tar.xz)
    -C  #指定解壓目錄位置
    -P  #忽略使用絕對路徑時報出的錯誤
    -X  #排除多個文件(寫入需要排除的文件名稱)
    -h  #打包軟鏈接		
    
    
    
    --hard-dereference  #打包硬鏈接
    --exclude   #在打包的時候寫入需要排除文件或目錄		

#常用打包與壓縮組合
czf    #打包tar.gz格式
cjf    #打包tar.bz格式
cJf    #打包tar.xz格式

zxf    #解壓tar.gz格式
jxf    #解壓tar.bz格式
xf     #自動選擇解壓模式
tf     #查看壓縮包內容    
		
  注意:
     1、壓縮時是什么路徑,解壓縮時就是什么路徑,所以為了安全不要使用絕對路徑壓縮。
     2、-f參數后面永遠跟壓縮包名稱
   
   
   
# tar命令練習     
  #1.環境准備
  [root@localhost ~]# yum install mariadb-server
  [root@localhost ~]# systemctl start mariadb
  [root@localhost ~]# mkdir /backup

#案例1.mysql備份及恢復
  [root@localhost ~]# tar cJf /backup/mysql.tar.xz /var/lib/mysql
  [root@localhost ~]# tar xf /backup/mysql.tar.xz -C /

#案例2 mysql備份及恢復
  [root@localhost ~]# cd /var/lib/mysql
  [root@localhost mysql]# tar cJf /backup/mysql.tar.xz *
  [root@localhost mysql]# tar tf /backup/mysql.tar.xz
  [root@localhost mysql]# tar xf /backup/mysql.tar.xz -C /var/lib/mysql     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM