Ubuntu 包管理
APT&dpkg
查看已安装包
查看所有已经安装的包
dpkg -l
查找包
- apt search <package_name>
- 搜索软件包列表,找到与搜索关键字匹配的包
dpkg与grep结合查找特定的包
dpkg -s <package>:查看某个安装包的详细信息
安装包
apt安装命令
- 更新包索引:sudo apt update
- 安装软件包:sudo apt install <package_name>
安装特定版本的包
- sudo apt install <package_name>=<version>:指定一个要安装的版本进行安装
dpkg 和 apt的区别
- dpkg:主要用于处理本地.deb包的安装、卸载查询等操作,操作不会自动处理依赖关系
- apt:高级包管理工具,除了管理本地的.deb包外,还可以从远程软件源中下载并自动解决包的依赖关系
例如安装一个本地的.deb包,直接使用dpkg即可
sudo dpkg -i package.deb
如果有缺失的依赖包,那么就要用apt解决
sudo apt-get install -f
安装.deb包
sudo dpkg -i <package_file>.deb
删除包
通过dpkg卸载已经安装的包
- dpkg -r <package>:卸载已经安装的包
- dpkg -P <package>:完全卸载已经安装的包,包括其中的配置文件
apt命令删除
- sudo apt remove <package_name>:删除 软件包,但是会保存配置文件
- sudo apt purge <package_name>:删除配置文件
自动删除不再需要的包
- sudo apt autoremove
snap
基本了解
主要特点
- 自动更新: Snap 包会自动更新,所有的应用都是最新版本。这个特性特别方便,因为你永远不需要担心遗漏了更新或者需要手动去处理安全修复
- 沙箱机制: Snap 包运行在一个隔离的“沙箱”环境里,就像把应用放在一个透明的盒子里。这样,应用就算有问题,也不会影响到系统的其他部分。这可以提高系统的安全性,防止恶意软件或有缺陷的应用对系统造成破坏
- 包含所有依赖: 一个 Snap 包自带了运行该应用所需的所有文件和依赖库。你不用担心缺少某个库,或者库的版本不兼容等问题。它就像一个“自给自足”的软件包,安装后可以直接使用,不会因为缺少其他程序或文件而无法运行
如果在新系统环境中可以使用snap,如果服务器中已经使用了其他包管理器,不建议更换
常用命令
安装命令
- sudo snap install <package_name>
查看已经安装的包
- snap list
更新已经安装的包
- sudo snap refresh
卸载snap包
sudo snap remove <package_name>
判断动态库的安装方式
利用项目中的jsoncpp动态库为例分析
查看jsoncpp动态库
分别检查系统库和本地库路径下的jsoncpp
也可以通过ldconfig命令直接查找
判断安装来源
apt list --installed | grep jsoncpp:输出说明1.9.5是通过包管理器安装的,而1.8.4是手动编译进行安装的