一般而言,能夠經過後綴區別源碼包和二進制包php
目錄node
二進制包 rom包管理 yum包管理 源碼包 tar包管理 文件的管理和歸檔
centos操做系統中有一款默認軟件管理的工具,即紅帽包管理工具(red hat package manager , RPM)mysql
rpm使用時,什麼狀況下使用軟件包全名,何時使用軟件包名?nginx
選項c++
1,掛載光盤git
[root@localhost ~]# mount /dev/cdrom /mnt
2,安裝sql
[root@localhost ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-31.el7.x86_64.rpm
3,查看是否安裝成功shell
[root@localhost ~]# cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/zsh
rpm -q 查詢. 常與下面參數組合使用.數據庫
-q 查詢指定的包是否安裝vim
[root@localhost ~]# rpm -q zsh zsh-5.0.2-31.el7.x86_64
-qa 查詢全部已經安裝包
[root@localhost ~]# rpm -qa | grep vi vim-minimal-7.4.160-5.el7.x86_64
-qf 查詢文件或命令屬於哪一個安裝包
[root@localhost ~]# which ifconfig /usr/sbin/ifconfig [root@localhost ~]# rpm -qf /usr/sbin/ifconfig net-tools-2.0-0.24.20131004git.el7.x86_64
-qpi 查詢軟件包的信息
# 對於未安裝的包 [root@localhost ~]# rpm -qpi /mnt/Packages/php-mysql-5.4.16-46.el7.x86_64.rpm Name : php-mysql Version : 5.4.16 對於已經安裝的包 [root@localhost ~]# rpm -qi net-tools Name : net-tools Version : 2.0 Release : 0.24.20131004git.el7
-qpl 查詢軟件包要安裝的位置
對於未安裝的包 [root@localhost ~]# rpm -qpl /mnt/Packages/net-tools-2.0-0.24.20131004git.el7.x86_64.rpm /bin/netstat /sbin/arp /sbin/ether-wake /sbin/ifconfig /sbin/ipmaddr /sbin/iptunnel 對於已經安裝的包 [root@localhost ~]# rpm -ql net-tools /bin/netstat /sbin/arp /sbin/ether-wake /sbin/ifconfig
-qf 查看軟件包內容是否被修改,用於檢驗命令沒有被黑客修改
[root@localhost ~]# which find /usr/bin/find [root@localhost ~]# rpm -qf /usr/bin/find findutils-4.5.11-6.el7.x86_64 [root@localhost ~]# rpm -V findutils #檢查包,沒有輸出結果就是沒有被修改 [root@localhost ~]# rpm -Vf /usr/bin/find #檢查具體文件,沒有輸出結果就是沒有被修改
如何查看系統中全部的rpm包及安裝的文件有沒有被黑客修改?
[root@localhost ~]# rpm -Va .M....... g /boot/initramfs-3.10.0-957.el7.x86_64.img S.5....T. c /etc/sysconfig/authconfig 校驗時候參考了/var/lib/rpm目錄下的rpm數據庫信息
卸載
[root@localhost ~]# rpm -e zsh [root@localhost ~]# rpm -qa | grep zsh [root@localhost ~]#
強制卸載
不建議使用.有依賴關係是建議使用yum來卸載
[root@localhost ~]# rpm -e --nodeps zsh
升級
由於升級時候會有一些依賴包要解決,因此通常咱們使用(yum update 包),來升級
rpm -Uvh
1掛載光盤
mount /dev/cdrom /mnt
2備份配置文件
[root@localhost ~]# mv /etc/yum.repos.d/ /etc/yum.repo.d [root@localhost ~]# mkdir /etc/yum.repos.d
3建立yum本地源
[root@localhost ~]# vim /etc/yum.repos.d/centos7.repo #名稱任意,可是必定要.repo結尾 [centos7] #yum源名稱,在本服務器上是唯一的 name=centos7 #yum源描述信息 baseurl=file:///mnt #yum源的路徑(ftp://... HTTP://... file:///...) enabled=1 #1啓用yum源 , 0爲禁用 gpgcheck=0 #1使用公鑰校驗rpm包的正確性,0爲不校驗
4清除yum緩存
[root@localhost ~]# yum clean all Loaded plugins: fastestmirror Cleaning repos: centos7
1下載阿里yum源並保存到指定路徑
wget 下載. -O指定保存位置
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS.Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2清除yum緩存
[root@localhost ~]# yum clean all
cat /etc/yum.repos.d/CentOS.Base.repo baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
其中$releasever表明的是系統版本
[root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.6.1810 (Core)
自動識別本地系統版本,和網站中的最新的版本對應.因此應該更改配置文件中的版本信息
1 查看 發現網站中http://mirrors.aliyun.com/centos/ centos版本最新的是7.6.1810 2 替換 [root@localhost ~]# sed -i 's/$releasever/7.6.1810/g' /etc/yum.repos.d/CentOS.Base.repo 3更新 [root@localhost ~]# yum clean all
安裝和升級
yum install -y httpd #安裝軟件包 yum update httpd #升級軟件包,改變軟件設置和系統設置,系統版本內核都升級 yum upgrade httpd #升級軟件包,不改變軟件設置和系統設置,系統版本升級,內核不改變 yum -y update #系統內能升級的軟件都會升級
檢索
yum info net-tools #查詢rpm包的做用 yum provides /usr/sbin/ifconfig #查詢文件是哪個軟件安裝的,同rpm -qf yum search vim #按照關鍵字搜索軟件包
卸載
yum remove zsh #卸載包
yum安裝開發工具軟件包組
查看有哪些軟件包組 [root@localhost ~]# yum grouplist 安裝開發工具組 [root@localhost ~]# yum groupinstall "Development Tools"
1安裝依賴
[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel
2解壓
[root@localhost ~]# tar zxvf nginx-1.16.0.tar.gz
3安裝軟件
[root@localhost ~]# cd nginx-1.16.0 [root@localhost nginx-1.16.0]# ./configure --prefix=/usr/local/nginx [root@localhost nginx-1.16.0]# make -j 4 [root@localhost nginx-1.16.0]# make install
./configure
make -j 4
make install
make clean
make uninstall
可是不少時候刪除不乾淨
因此通常安裝時指定路徑--prefix=/usr/local/nginx
這樣進行操做時,能夠直接對這個路徑進行操做
can't find ext2fs library
根據提示,安裝ext2fs庫
通常咱們能夠RPM安裝,經過按tab鍵補齊.不行的話能夠查找關鍵字
[root@localhost ~]# rpm -ivh /mnt/Packages/ext2fs [root@localhost ~]# ls /mnt/Packages/*ext2fs* [root@localhost ~]# ls /mnt/Packages/*2fs* /mnt/Packages/e2fsprogs-libs-1.42.9-13.el7.i686.rpm /mnt/Packages/e2fsprogs-libs-1.42.9-13.el7.x86_64.rpm
還能夠經過yum search ext2fs來檢索
[root@localhost ~]# yum search ext2fs
當咱們把庫已經安裝,可是configure時又說找不到,怎麼辦
咱們還須要安裝該庫的頭文件
/mnt/Packages/e2fsprogs-devel-1.42.9-13.el7.x86_64.rpm
好處:節約硬盤的資源,加快文件傳輸速率
選項
把/boot/grub/打包到指定路徑
[root@localhost ~]# tar -cvf /home/harry1/grub.tar /boot/grub/ /boot/grub/ /boot/grub/splash.xpm.gz
解包grub.tar到指定路徑
[root@localhost ~]# tar xvf grub.tar boot/grub/ boot/grub/splash.xpm.gz
將多個目錄和文件打包成一個軟件包
[root@localhost ~]# tar -cvf /home/harry1/back.tar /etc/passwd /etc/group /home/harry1/ /etc/passwd /etc/group /home/harry1/
不解包,只查看包中的內容
[root@localhost ~]# tar -tvf /home/harry1/back.tar -rw-r--r-- root/root 941 2019-06-05 05:17 etc/passwd -rw-r--r-- root/root 519 2019-06-05 05:17 etc/group ...
在使用絕對路徑名歸檔文件時,默認從文件名中刪除該路徑前面的/符號,這樣解壓時,會直接解壓到當前目錄.否則會覆蓋原路徑中的文件
參數
tar.gzip
壓縮 [root@localhost ~]# tar zcvf /home/harry1/etc.tar.gz /etc 解壓縮 [root@localhost ~]# tar zxvf /home/harry1/etc.tar.gz -C /opt/
tar.bz2
壓縮 [root@localhost ~]# tar jcvf /home/harry1/etc.tar.bz2 /etc 解壓縮 [root@localhost ~]# tar jxvf /home/harry1/etc.tar.bz2 -C /opt/
tar.xz
壓縮 [root@localhost ~]# tar Jcvf /home/harry1/etc.tar.xz /etc 解壓縮 [root@localhost ~]# tar Jxvf /home/harry1/etc.tar.xz -C /opt/
通過測試,解壓縮時若是存在相同文件,會直接覆蓋,不會詢問
效果