第六篇:linux之解壓縮、軟件管理
文章目錄
- 第六篇:linux之解壓縮、軟件管理
- 一、解壓和壓縮
- 1、window壓縮包與linux壓縮包能否互通?
- 2、linux下壓縮包的類型
- 3、打包與壓縮
- 二、軟件管理
- 1、rpm
- 1、什么是rpm?
- 2、rpm包名組成部分
- 3、如何獲取rpm包?
- 4、linux中處理rpm的安裝軟件,還有那些安裝軟件方式?
- 5、rpm包如何安裝?
- 6、如何查詢已安裝好的rpm包?
- 2、yum
- 1、什么是yum?
- 2、yum源是什么?
- 3、yum源配置
- 3、源碼安裝
- 1、源碼包是什么?
- 2、為什么學習源碼包?
- 3、源碼包優缺點?
- 4、使用方式
一、解壓和壓縮
1、window壓縮包與linux壓縮包能否互通?
在windows系統下,接觸做多的壓縮格式便是rar或zip,但在linux上使用最多的壓縮格式是zip和tar.gz。linux不支持rar格式,所以,互通選擇zip格式即可。
2、linux下壓縮包的類型
格式 | 壓縮工具 |
---|---|
.zip | zip壓縮工具 |
.gz | gzip壓縮工具,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.bz2 | bzip2壓縮文件,只能壓縮文件,會刪除源文件(通常配合tar使用) |
.tar.gz | 先使用tar命令歸檔打包,然后使用gzip進行壓縮 |
.tar.bz2 | 先使用tar命令歸檔打包,然后使用bzip進行壓縮 |
3、打包與壓縮
"""gzip的使用"""
yum install gzip -y # 只能壓縮一個文件,也不能壓縮文件夾
gzip test.txt # 對文件進行壓縮【會將源文件刪除】
zcat test.txt.gz # 查看壓縮后的文件【可直接顯示壓縮文件中的內容】
gzip -d test.txt.gz # 解壓壓縮后的文件
# 用處
cd /etc/yum.repos.d/
比如說,我們可以將此目錄下的文件全部進行壓縮,可以自定義源,更好的進行處理"""zip的使用"""
yum install zip unzip -y # 文件和文件夾均可壓縮【文件夾-r】
zip a.zip test.txt # 將test.txt壓縮成a.zip格式【不會刪除原來的文件】
zip -r home.zip /home/ # 文件夾壓縮
zip -T filename.zip # 查看此zip壓縮包是否完整
unzip home.zip # 解壓
unzip -l home.zip # 不解壓,查看壓縮包中的內容
unzip home.zip -d /opt/ # 把當前路徑下的home.zip 解壓到opt目錄下"""tar的使用"""
yum intall tar -y
# 可以同時壓縮目錄和文件,也支持跨文件夾壓縮
tar -czf aa.tar.gz test1.txt test2.txt # 將test1.txt和test2.txt文件壓縮到aa.tar.gz
tar -xf aa.tar.gz # 解壓xx.tar.gz壓縮包
tar czf etc.tar.gz --exclude=etc/services etc/ # 排除文件
tar xf /etc/local.tar.gz -C /tmp # -C指定解壓到哪個路徑c # 創建新的歸檔文件
x # 對歸檔文件解包
t # 列出歸檔文件里的內容列表
v # 輸入命令歸檔或解包的過程
f # 指定包文件名【多參數f寫到最后面】
z # 使用gzip壓縮歸檔后的文件(.tar.gz)
j # 使用bzip2壓縮歸檔后的文件(.tar.bz2)
J # 使用xz壓縮歸檔后的文件(.tar.xz)
C # 指定解壓目錄位置
X # 排除多個文件(寫入需要排除的文件名稱)
h # 打包軟鏈接czf # 打包tar.gz格式
cjf # 打包tar.bz格式
cJf # 打包tar.xz格式
zxf # 解壓tar.gz格式
jxf # 解壓tar.bz格式
xf # 自動選擇解壓模式
tf # 查看壓縮包內容
二、軟件管理
1、rpm
1、什么是rpm?
RPM全稱是(RedHat Package Manager),是由紅帽開發用于軟件包的安裝升級卸載與查詢。
2、rpm包名組成部分
3、如何獲取rpm包?
我們可以在linux中執行mount /dev/cdrom /mnt
【將光盤掛載到/mnt
文件夾下】,此時便可以在/mnt/Packages
目錄下看到很多的rpm
包文件。
4、linux中處理rpm的安裝軟件,還有那些安裝軟件方式?
分類 | 安裝 | 版本 |
---|---|---|
rpm包 | 預先編譯打包,安裝簡單 | 軟件版本偏低 |
源碼包 | 手動編輯打包,安裝繁瑣 | 軟件版本隨意 |
二進制包 | 解壓即可使用,安裝簡單 | 不能修改源碼 |
-源碼安裝-->官網下源碼--》編譯安裝---》最新
-rpm包,預先編譯打包,安裝簡單,yum安裝,本質就是rmp安裝--》稍微老一些
-二進制包:綠色包
5、rpm包如何安裝?
以下為rpm命令進行安裝的軟件的常用參數。
選項 | 描述 |
---|---|
-i | 安裝rpm |
-v | 顯示安裝詳細信息 |
-h | 顯示安裝rpm進度 |
–force | 強制重新安裝 |
–nodeps | 忽略依賴關系 |
"""rpm包安裝"""
# 安裝rpm的軟件
rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
或者
cd /mnt/Packages/ # 在軟件所在目錄下可以不指定絕對路徑
rpm -ivh tree-1.6.0-10.el7.x86_64.rpm# 如果軟件包存在,強制再次安裝
rpm -ivh --force /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm# 安裝samba服務需要依賴其它組件,使用--nodeps可重新強制安裝
rpm -ivh --nodeps /mnt/Packages/samba-4.8.3-4.el7.x86_64.rpm
6、如何查詢已安裝好的rpm包?
選項 | 描述 |
---|---|
rpm -q | 查看指定軟件包是否安裝 |
rpm -qa | 查看系統中已安裝的所有rpm軟件包列表 |
rpm -qi | 查看指定軟件的詳細信息 |
rpm -ql | 查詢指定軟件包所安裝的目錄、文件列表 |
rpm -qc | 查詢指定軟件包的配置文件 |
rpm -qf | 查詢文件或目錄屬于哪個rpm軟件 |
rpm -qip | 查詢未安裝的rpm包詳細信息 |
rpm -qlp | 查詢安裝的軟件包會產生哪些文件 |
"""查詢rpm包"""
# 查詢tree這個rpm包是否安裝
rpm -q tree # 類似于 rpm -qa |grep tree
rpm -qa |grep tr # 列出所有安裝的軟件
rpm -qi tree # 查看指定軟件的詳細信息
rpm -ql tree # 查詢指定軟件包所安裝的目錄、文件列表
...
rpm -qf /etc/pam.d/vsftpd # 查看配置文件屬于哪個軟件
rpm -qlp tree-1.6.0-10.el7.x86_64.rpm # 查看該軟件包安裝后會釋放哪些文件"""使用遠程地址安裝rpm包"""
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.8-2.el7.x86_64.rpm"""升級軟件"""
rpm -Uivh # 升級軟件需要用U【加U即可】 """卸載rpm包"""
rpm -e tree
2、yum
1、什么是yum?
yum是RedHat以及centos中軟件包管理器,能夠通過聯網下載.rpm
包并且安裝,可以自動處理依賴性關系,無需繁瑣的一次次的進行下載、安裝。
2、yum源是什么?
要想成功使用yum工具安裝更新軟件或系統,就需要有一個包含各種rpm軟件包的repository(軟件倉庫),這個倉庫我們習慣稱為yum源(可以是本地源、網絡源)。
3、yum源配置
我們可以是用cd /etc/yum.repos.d/
路徑下,查看yum源,即為.repo
文件。【默認配置的源可能缺少軟件,需要我們手動進行源配置】
"""如何更換阿里云的源?"""
# 將https://mirrors.aliyun.com/repo/Centos-7.repo下載到/etc/yum.repos.d/下,替換掉CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo"""擴展源:epel擴展源"""
# 下載epel-7.repo到/etc/yum.repos.d/下,如此就可以下載默認源中沒有的軟件,如【nginx】
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo"""python也可以使用yum安裝(在阿里云的拓展源中)"""
yum install python36"""補充"""
systemctl start nginx # 啟動程序
systemctl restart nginx # 重啟程序
systemctl stop firewalld.service # 關閉防火墻
3、源碼安裝
1、源碼包是什么?
源碼包指的是開發者編寫好的程序源代碼,但沒有將其編譯為一個能正常使用的工具。
2、為什么學習源碼包?
部分軟件官方不提供yum安裝,同時源碼可以安裝是最新版本的。
3、源碼包優缺點?
- 可以自行修改源代碼
- 可以定制需要的相關功能
- 新版軟件優先更新源碼
- 相對于yum安裝軟件會復雜很多
4、使用方式
"""向服務器傳遞文件的幾種方式"""
1 wget + 網絡地址 # 直接下載tar.gz包
2 下載到windows上,使用rz上傳到linux上 # 也是tar.gz包
3 xftp軟件來傳
4 scp nginx-1.18.0.tar.gz root@101.133.225.166:/home/yangyi1 # 網絡拷貝【從windows上傳到linux上】
"""舉例:源碼安裝nginx"""1、下載tar.gz包[root@yangyi ~]# wget http://nginx.org/download/nginx-1.15.12.tar.gz2、進行解壓,并進入相應目錄下[root@yangyi ~]# tar -xf nginx-1.15.12.tar.gz[root@yangyi ~]# cd nginx-1.15.12/3、安裝相關依賴【如果沒有,則會報錯】yum install -y pcre-devel gcc gcc-c++ make zlib-devel openssl-devel4、通過configure,生成配置信息,配置相關的選項,安裝路徑,并生成Makefile,軟件安裝的信息[root@yangyi nginx-1.15.12]# ./configure --help # 可執行文件可以--help查看相關幫助[root@yangyi nginx-1.15.12]# ./configure --prefix=/usr/local/nginx[root@yangyi nginx-1.15.12]# echo $? # 檢查上一個命令是否執行成功5、將Makefile文件編譯成可執行二進制程序,此時/usr/local/nginx可執行文件還不存在,需要執行make install才能copy過去[root@yangyi nginx-1.15.12]# make6、將二進制文件拷貝到對應的目錄中[root@yangyi nginx-1.15.12]# make install7、我們進入/usr/local/nginx/下,可以看到相關目錄- conf: 配置文件- html: 靜態文件存放路徑,index.html- logs: 日志- sbin: 可執行文件8、命令[root@yangyi sbin] ./nginx # 啟動[root@yangyi sbin] nginx -s reload # 重新加載,修改配置文件[root@yangyi sbin] nginx -s restart # 重啟[root@yangyi sbin] nginx -s stop # 停止9、在任意路徑敲nginx都能執行【三種方式】1)建立軟鏈接 ln -s /usr/local/nginx/sbin/nginx /sbin/nginx2)把/usr/loacl/nginx/sbin/路徑加入環境變量3)想使用systemctl管理(制作成系統服務)"""安裝其它軟件的源碼,步驟類似,如python3"""