目录
简述
Linux的发行版主要分为debian和redhat两个体系。两个体系最直观的是安装命令的不同。
kali是基于debian系统。centos是基于redhat系统。
Debian体系的软件安装
1.dpkg命令
dpkg
是为"Debian"操作系统专门开发的套件管理系统,用于软件的安装,更新和移除。能被dpkg
命令安装的软件包一般以.deb
为文件后缀。
dpkg -i [deb安装包名] # 安装软件包
dpkg -r [应用名] # 移除软件(保留配置)
dpkg -P [应用名] # 移除软件(不保留配置)
dpkg -c [deb安装包名] # 列出deb包的内容
dpkg -l # 列出系统中所有已安装的软件包信息 dpkg -l|grep [模糊应用名] 可以查找想要的已安装的软件名
dpkg -s [应用名] # 查找应用的详细信息
dpkg -L [应用名] # 查看已安装的应用,都在系统哪里存放了文件
dpkg -S [应用名] # 显示指定包的状态信息,和L命令相似
2.apt命令
apt
是一个在Debian中的Shell前端软件包管理器。
apt
命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
apt
命令执行需要超级管理员权限(root)
apt
在执行时包含了dpkg命令,它相当于是比较全的安装命令集合,先从源列表里拉取应用名,再从网络上下载deb包,再执行dpkg安装命令进行安装。
2.1源的配置
apt
命令更新和安装软件包是从软件安装源中请求的。
kali系统的源文件在/etc/apt/sources.list
。
常见kali源:
#官方源
deb http://http.kali.org/kali kali-rolling main contrib non-free
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
可以编辑/etc/apt/sources.list
文件,将源切换成需要的源。
修改之后,需要通过apt update
命令来更新源。
2.2apt命令
apt-get install [应用名] #安装应用,从源的应用列表里,要及时更新源的应用列表,以便安装新版的应用
apt-get remove [应用名] #仅卸载软件,但是并不卸载配置文件
apt-get purge [应用名] #卸载指令,同时卸载相应的配置文件
apt-get update #更新源列表,缓存到本地,只是更新列表,并不更新已经安装好的应用
apt-get upgrade #将系统中旧版本的应用升级成最新的(可能会导致系统崩溃)
apt-cache search [模糊应用名] #用关键字搜索包,搜索的是缓存源列表里的
apt-cache show [应用名] #显示特定包的基本信息
apt-cache depends [应用名] #列出包的依赖
apt-get clean #清理本地包占用的磁盘空间(/var/cache/apt/archives) apt-get clean all 同时清理缓存的源列表
apt-get autoremove #卸载软件的时候同时卸载那些当初作为依赖但是现在并不需要的包
redhat体系的软件安装
1.rpm命令
rpm
命令用于管理软件。rpm原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。能被rpm命令安装的软件包一般以.rpm
为文件后缀。
1.1常见命令
rpm -ivh [rpm安装包名] #安装软件包 vh只是为了能有进度条显示
rpm -evh [rpm安装包名] #卸载软件 vh只是为了能有进度条显示
rpm -qlp *.rpm #列出rpm包的内容
rpm -qa |grep [字符串] #在已安装的所有软件中查询包含某字符串的软件版本
rpm -ql [软件名] #列出该软件所有文件与目录所在的完整文件名
rpm -qc [软件名] #列出软件的所有设置文件
rpm -qR [软件名] #查询某软件依赖的其他软件
rpm -qf [文件名] #查询文件属于哪个软件包
2.yum命令
yum
命令是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。(类似于apt)
2.1yum源配置
同apt命令一样,yum依然从源获取软件。在centos中yum源文件存储在/etc/yum.repos.d目录中。
repo文件的示例:
[baseos]
name=Rocky Linux $releasever - BaseOS
mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever
#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
epel源是redhat系比较常用的源。
EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux.
安装epel源只需要安装一个叫”epel-release”的软件包,这个软件包会自动配置yum的软件仓库。
命令为:dnf install -y epel-release
2.2yum命令
yum makecache #更新源(安装新源后执行)
yum clean all #清除缓存目录(/var/cache/yum)下的软件包及旧的headers
yum list |grep [应用名] #显示所有已经安装和可以安装的程序包
yum info [yum安装包名] #显示安装包信息
yum -y install [yum安装包名] #安装软件,默认选yes
yum remove [应用名] #卸载
yum deplist rpm [应用名] #查看程序rpm依赖情况
yum update #更新全部软件包
yum group list #列出组
yum group install "Security Tools" #安装‘Security Tools’软件组
yum search [模糊应用名] #检索安装包
2.3dnf命令
DNF
是新一代的rpm软件包管理器。它正在逐步取代yum
命令。
dnf repolist #该命令用于显示系统中可用的 DNF 软件库
dnf repolist all #该命令用于显示系统中可用和不可用的所有的 DNF 软件库
dnf list #用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包
dnf list installed #该命令用于列出所有安装了的 RPM 包
dnf list available #用于列出来自所有可用软件库的可供安装的软件包
dnf search [pakage] #用该命令来搜索软件包
dnf provides /bin/bash #查找某一文件的提供者
dnf info nano #查看软件包详情
dnf install [pakage] #安装软件包
dnf update systemd #该命令用于升级指定软件包
dnf check-update #该命令用于检查系统中所有软件包的更新
dnf update #该命令用于升级系统中所有有可用升级的软件包
dnf remove [pakage] #删除系统中指定的软件包
dnf autoremove #删除无用孤立的软件包
dnf clean all #删除缓存的无用软件包
dnf history #查看您系统上 DNF 命令的执行历史
dnf grouplist #该命令用于列出所有的软件包组
dnf groupinstall ‘Educational Software’ #该命令用于安装一个软件包组
dnf groupupdate ‘Educational Software’ #升级一个软件包组中的软件包
dnf groupremove ‘Educational Software’ #该命令用于删除一个软件包组
dnf reinstall [pakage] #该命令用于重新安装特定软件包