0. 天虽然并不是很晴,但还是可以出门小逛
linux主要发行的分支系列:
- RedHat:RedHat Centos
常见软件包格式:rpm
常用包管理器:yum - Debian:Debian Ubuntu
常见软件包格式:deb(dpkg -xxx)
常用包管理器:apt-get
debian的包管理器GUI:synaptic
ubuntu的新版包管理器:snap(沙盒形式的)
包管理器 相比 硬核安装 一般会自动配置:
chmod
env
注册到systemctl
添加到用户组
1. debian & deb & dpkg
-
debian发行系统使用dpkg安装/卸载deb程序
-
ubuntu的apt是使用debian的dpkg命令实现的
# 查看已安装
sudo dpkg -l | grep xxx
# 下载
sudo dpkg -i xxx.deb
# 卸载
sudo dpkg -r xxx
# 安装后的各种文件位置
dpkg -L xxx
2.Ubuntu中apt与apt-get命令的区别
2.1 Debian & 包管理器APT & apt命令
Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,其具有强健的「包管理」系统,它的每个组件和应用程序都内置在系统中安装的软件包中。
Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统
不过请不要把它与 apt 命令混淆,它们之间是其实不是同一个东西。
2.2 与APT交互的各种命令行工具 / GUI
在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。apt-get 便是其中一款广受欢迎的命令行工具
另外一款较为流行的是 Aptitude 这一命令行与 GUI 兼顾的小工具
2.3 早期apt-xxx命令的一些不足
如果你已阅读过我们的 apt-get 命令指南,可能已经遇到过许多类似的命令,如apt-cache、apt-config 等
如你所见,这些命令都比较低级又包含众多功能,普通的 Linux 用户也许永远都不会使用到
换种说法来说,就是最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中
2.4 apt 命令的引入就是为了解决命令过于分散的问题
apt也是基于apt-get等命令实现的
apt将分散在apt-get、apt-cache 和 apt-config的常用指令结合
并且集成这三者的所有功能
3. ubuntu & apt
通过apt指令创建的包,将自动配置环境变量
# 模糊查询
apt list --installed | grep program_name
# 你如何知道某个软件包有哪些可用的版本?可以使用这个命令
apt list --all-versions package_name
# 想安装一个软件包的一个特别指定的版本?
sudo apt install package_name=package_version
# 查询已安装软件的所有具体信息
apt show softwareName
apt remove
apt autoremove 删除不需要的软件包
apt purge 删除软件包及其配置文件
apt update 刷新存储库索引
apt upgrade 升级所有软件包
apt full-upgrade 升级所有软件包时,自动处理依赖关系
apt edit-sources 编辑源列表
4. ubuntu & snap
- ubuntu下的一款自带的软件包管理器
- idea 官方建议 ubuntu 使用 snap 方式安装
- snap 卸载时会顺带带走安装的应用
- snap 存在自动更新软件最新版的毛病
sudo snap remove softwareName
# 卸载软件包
snap info softwareName
# 输出软件包的详细信息
sudo snap install softwareName --channel=xx/stable
# 安装指定版本的软件包
5. RedHat & rpm
回想,一般都是用来手工安装rpm包才使用
# 安装rpm
# https://www.cnblogs.com/yoyo1216/p/10208690.html
rpm -ivh packageName
-i 安装
-v 输出文件名称
-h 输出进度
6. centos & yum
- rpm直接反馈用户
- yum如果解决尝试失败,反馈用户
6.1 使用命令
yum [optional] command package
# 清理缓存
yum clean packages
yum clean headers
yum clean oldheaders
yum clean all 清理以上选项
# 查询
# 查不到很正常,先安装该软件包的源
# 软件包名可以加*通配
yum list [ | grep packageName] 从本地查找可安装、已安装的软件包
yum list installed | grep 已安装的软件包
yum list updates 可更新的软件包
yum info packageName 详细信息
yum search packageName 从源查找可安装的软件包
yum deplist packageName 查找软件包的依赖
yum repolist [all | grep packageName] 列出所有源仓库
# 安装
yum -y install
# 卸载
yum remove packageName
# 更新
# upgrade会清理掉旧包,可能会导致旧软件包依赖问题
# https://www.jianshu.com/p/761b24775131
yum check-update 查询可更新的软件包
yum update packageName
yum upgrade packageName
# 以上很多命令都有group软件包组的相应用法
# 软件包以及依赖可以一组一组的安装、维护
# https://blog.csdn.net/danns888/article/details/116450756
yumgroup
6.2 源
yum源配置文件
/etc/yum.repo.d/centos-base.repo
6.3 加加餐
yum header
软件包的描述信息而已
- 要么手动下载校验文件;
- 要么在yum的该源配置文件中的密钥校验置0