总结:软件包管理

ldd

动态库:so
静态库:a
系统开发:C C++
应用开发:Java Python golang PHP

[root@centos7 /data/scripts]#ldd /bin/cat
	linux-vdso.so.1 =>  (0x00007ffc05952000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f7f24645000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f7f24a13000)

[root@localhost ~]#systemctl start autofs   #centos7开启
[root@localhost ~]#systemctl enbale autofs   ##centos7开机启动
[root@localhost ~]#service autofs start    #centos6开启

[root@localhost ~]#ls /misc/cd/Packages/ |rev |cut -d. -f2 |sort |uniq -c
   4661 46_68x
   2281 686i
   3155 hcraon
      1 SNART
[root@localhost ~]#ls /misc/cd/Packages/ |sed -r 's/.*\.(.*)\.rpm/\1/' |sort |uniq -c
   2281 i686
   3155 noarch
      1 TRANS.TBL
   4661 x86_64
[root@localhost ~]#ls /misc/cd/Packages/ |sed -rn 's/.*\.(.*)\.rpm/\1/p' |sort |uniq -c
   2281 i686
   3155 noarch
   4661 x86_64

实验:删除/lib64/libc.so.6,修复之
[root@localhost ~]#rm /lib64/libc.so.6
[root@localhost ~]#reboot

sh-4.2#cp /lib64/libc.so.6 /mnt/sysimage/lib64

rpm

[root@localhost ~]#file /var/lib/rpm/*    #存放rpm安装软件信息数据库目录
/var/lib/rpm/Basenames:    Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Conflictname: Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Dirnames:     Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Group:        Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Installtid:   Berkeley DB (Btree, version 9, native byte-order)
/var/lib/rpm/Name:         Berkeley DB (Btree, version 9, native byte-order)


[root@localhost ~]#rpm -q tree    #查询安装包
tree-1.6.0-10.el7.x86_64
[root@localhost ~]#rpm -qi tree    #查询信息
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: Wed 27 May 2020 07:33:27 PM CST
Group       : Applications/File
Size        : 89505

[root@localhost ~]#rpm -ql tree     #查询列表
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
[root@localhost ~]#rpm -qf `which tree`    #后跟路径
tree-1.6.0-10.el7.x86_64
[root@localhost ~]#rpm -e tree    #卸载
[root@localhost ~]#rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --force    #强制安装
[root@localhost ~]#rpm --import /misc/cd/RPM-GPG-KEY-CentOS-7   #导入秘钥
[root@localhost ~]#rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --replacepkgs    #全覆盖
[root@localhost ~]#rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --replacefiles    #覆盖冲突文件
[root@localhost ~]#rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm --nodeps   #忽略依赖性
[root@localhost ~]#rpm -qpi /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm    #查询未安装包信息
warning: /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/File
Size        : 89505
License     : GPLv2+

实验:安装两个内核
[root@localhost ~]#rpm -ivh /misc/cd/Packages/kernel-3.10.0-1062.el7.x86_64.rpm --force

[root@localhost ~]#rpm -ql bash    #显示所有列表
[root@localhost ~]#rpm -qc bash    #显示配置
[root@localhost ~]#rpm -qd bash    #显示文档
[root@localhost ~]#ll /usr/bin/tree
-rwxr-xr-x 1 root root 62768 Jun 10  2014 /usr/bin/tree
[root@localhost ~]#chown wang /usr/bin/tree
[root@localhost ~]#ll /usr/bin/tree
-rwxr-xr-x 1 wang root 62768 Jun 10  2014 /usr/bin/tree
[root@localhost ~]#rpm -V tree   #查看变化
.....U...    /usr/bin/tree
[root@localhost ~]#echo >> /usr/bin/tree
[root@localhost ~]#rpm -V tree
S.5....T.    /usr/bin/tree
[root@localhost ~]#vim /usr/bin/tree
:%!xxd
:%!xxd -r
:wq

yum

[root@localhost ~]#ls /etc/yum.repos.d/    #配置yum源目录
bak  CentOS-aliyun.repo
实验:配置基于光盘的yum源
[root@localhost ~]#cat /etc/yum.repos.d/cdrom.repo 
[cdrom]
name=cdrom base
baseurl=file:///misc/cd/    #repodata所在目录为yum源路径
gpgcheck=1
gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-$releasever

[eple]
name=aliyun epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
enabled=0

实验:基于网络的yum源
[root@localhost ~]#cat /etc/yum.repos.d/aliyun.repo 
[aliyun]
name=aliyun base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever


[eple]
name=aliyun epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
enabled=0
实验:基于本地服务器的yum源
#####服务器配置
[root@localhost ~]#yum install httpd -y
[root@localhost ~]#cat /etc/selinux/config 
SELINUX=disabled
[root@localhost ~]#systemctl disable firewalld
[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#systemctl start httpd
[root@localhost ~]#mkdir -pv /var/www/html/centos/{6,7}/os/x86_64
[root@localhost ~]#mount /dev/sr0 /var/www/html/centos/7/os/x86_64
[root@localhost ~]#echo '- - -' >/sys/class/scsi_host/host0/scan
[root@localhost ~]#mount /dev/sr1 /var/www/html/centos/6/os/x86_64

##### 客户端配置
[root@localhost ~]#cat /etc/yum.repos.d/local.repo 
[local]
name=local base
baseurl=http://192.168.50.30/centos/$releasever/os/$basearch
gpgcheck=1
gpgkey=http://192.168.50.30/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever

[eple]
name=aliyun epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
enabled=0

root@localhost ~]#yum repolist    #列出已启用repo源
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                                   repo name                                     status
cdrom                                     cdrom base                                    10,097
repolist: 10,097
[root@localhost ~]#yum repolist all    #列出所有repo源
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                                 repo name                              status
cdrom                                   cdrom base                             enabled: 10,097
eple/7/x86_64                           aliyun epel                            disabled
repolist: 10,097

[root@localhost ~]#yum clean all    #清除所有缓存
[root@localhost ~]#rm -rf /var/cache/yum/*   #删除缓存
[root@localhost ~]#yum install httpd -y  #安装
[root@localhost ~]#yum remove httpd    #卸载
[root@localhost ~]#yum reinstall httpd -y  #重新安装

yum history
[root@localhost ~]#yum history   #列出yum安装历史
[root@localhost ~]#yum history undo 10  #卸载历史编号10所安装的包
[root@localhost ~]#yum history redo 10  #重新安装历史编号10所安装的包
[root@localhost ~]#yum history info 10  #查询编号10详细信息
[root@localhost ~]#yum list   #列出所有包(@表示已安装)
GConf2.x86_64                               3.2.6-8.el7                @anaconda
GeoIP.x86_64                                1.5.0-14.el7               @anaconda
ModemManager.x86_64                         1.6.10-3.el7_6             @anaconda
zlib-devel.i686                             1.2.7-18.el7               cdrom    
zlib-static.i686                            1.2.7-18.el7               cdrom 
[root@localhost ~]#yum info tree   #查询包信息
[root@localhost ~]#yum provides bash
[root@localhost ~]#yum search bash   #搜索包(精确)
[root@localhost ~]#yum list |grep bash  #模糊搜索

yum grouplist
[root@localhost ~]#yum grouplist    #列出包组
vailable Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
[root@localhost ~]#yum group info "Development Tools"  #查询包组所包含包
[root@localhost ~]#yum group install Development\ Tools   #安装包组

dnf

centos8使用,用法与yum一样,主要是速度快
dnf [options] <command> [<arguments>…]
dnf --version
dnf repolist
dnf clean all
dnf makecache
dnf list installed
dnf list available
dnf search nano
dnf history
dnf history undo 1

ubuntu

dpkg

dpkg常见用法: man dpkg
dpkg -i package.deb 安装包
dpkg -r package 删除包,不建议,不自动卸载依赖于它的包
dpkg -P package 删除包(包括配置文件)
dpkg -l 列出当前已安装的包,类似rpm -qa
dpkg -l package 显示该包的简要说明,类似rpm –qi
dpkg -L package 列出该包中所包含的文件,类似rpm –ql
dpkg -S 搜索包含pattern的包,类似rpm –qf
dpkg -s package 列出该包的状态,包括详细信息,类似rpm –qi
dpkg --configure package 配置包,-a 使用,配置所有没有配置的软件包
dpkg -c package.deb 列出 deb 包的内容,类似rpm –qpl
dpkg --unpack package.deb 解开 deb 包的内容

apt

apt 命令
apt install 安装软件包
apt remove 移除软件包
apt purge 移除软件包及配置文件
apt update 刷新存储库索引
apt upgrade 升级所有可升级的软件包
apt autoremove 自动删除不需要的包
apt full-upgrade 在升级软件包时自动处理依赖关系
apt search 搜索应用程序
apt show 显示安装细节

猜你喜欢

转载自blog.csdn.net/wauzy/article/details/106388317