开发软件管理 Linux系统下安装程序的方式无非2大类: 源码包 包管理器 软件包管理 Linux下最初只有tar.gz这样的源码包。但是Linux中的程序大多是小程序,程序与程序之间存在非常复杂的
Linux系统下安装程序的方式无非2大类:
-
源码包
-
包管理器
Linux下最初只有tar.gz这样的源码包。但是Linux中的程序大多是小程序,程序与程序之间存在非常复杂的依赖关系,这些小程序的源码包的管理就是一个很让人头疼的问题。
dpkg(Debian package),是Debian软件包管理器的底层实现基础。
apt(Advanced Packaging Tool,Linux高级打包工具)是一款基于Debian分支的所有Linux发行版本的包管理器,构建于dpkg之上。
apt-get是早期Debian实现的包管理器,在16.04以后新出炉的apt比apt-get更好用。但是apt毕竟是刚出的,所有有时候有些操作还是要使用apt-get的。
deb,是Debian软件包格式的文件扩展名。一般使用dpkg或apt安装的软件包都是这个扩展名。
deb包在 Linux操作系统中类似于windows中的 软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。
rpm(Red-Hat Package Manager,红帽软件包管理器),是一款由红帽公司在APT基础上研发出来的包管理器。
用RPM工具可以将二进制程序进行打包,包被称为RPM包。RPM无法解决软件包的依赖关系,但是yum自动解决软件依赖性。
yum(Yellow dog Updater, Modified)是一款在Fedora和RedHat以及CentOS中的软件包管理器的前端工具。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
dpkg
dpkg -i 包名.deb # 安装包
dpkg -r 包名 # 删除包
dpkg -P 包名 # 删除包(包括配置文件)
dpkg -L 包名 # 列出与该包关联的文件
dpkg -l 包名 # 显示该包的版本
dpkg --unpack 包名.deb # 解开 deb 包的内容
dpkg -S keyword # 搜索所属的包内容
dpkg -l # 列出当前已安装的包
dpkg -c 包名.deb # 列出 deb 包的内容
dpkg --configure 包名 # 配置包
apt
# 安装软件包
rpm -ivh 包名.rpm
# 卸载软件包
rpm -e 包名.rpm
# 查询包是否已经安装
rpm -q 包名
# 升级软件包
rpm -Uvh 包名.rpm
# 查询软件包的描述信息
rpm -qpi 包名.rpm
# 列出软件文件信息
rpm -qpl 包名.rpm
yum
yum install 软件包名 # 安装软件包
yum reinstall 软件包名 # 重新安装软件包
yum update 软件包名 # 升级软件包
yum search 关键字 # 搜索包含关键字的软件包
yum remove 软件包名 # 移除软件包
yum clean all # 清除所有仓库缓存
yum makecache # 创建新的缓存
yum repolist all # 列出所有仓库
yum list all # 列出仓库所有软件包
yum info 软件包名 # 查看软件包信息
yum check-update # 检查可以更新的软件包
yum grouplist # 查看系统中已安装的软件包
系统服务管理
systemctl是一个非常强大的Linux的进程管理系统,为Linux系统的启动和管理提供一套完整的解决方案。systemctl的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。它为Linux提供了一整套命令系统,涉及到系统管理的方方面面。这里我们只是简单介绍几个基础命令。
systemctl restart 服务名 # 重启服务
systemctl start 服务名 # 启动服务
systemctl stop 服务名 # 停止服务
systemctl status 服务名 # 查看服务状态
systemctl enable 服务名 # 设置服务开机自启
systemctl disable 服务名 # 设置关闭开机自启
systemctl is-enabled 服务名 # 检查服务是否设置了开机自启 enabled表示已设置开机自启,disabled表示禁用