apt-get、apt、aptitude、dpkg、gdebi、yum

Ubuntu deb 包下载:https://packages.ubuntu.com/focal/rinetd
focal 表示发行版本,rinetd 表示 deb 包名

更新 LInux 系统步骤:

        root@Kali:~# apt-get update          更新 "本地软件包 数据库"
        root@Kali:~# apt-get upgrade         升级已存在的包
        root@Kali:~# apt-get dist-upgrade    升级系统到最新版本

查询软件版本

        命令:aptitude show 软件名        示例:aptitude show kde-runtime
        命令:dpkg -l 软件名                 示例:dpkg -l gedit

查询软件安装路径

        命令:dpkg -L 软件名            示例:dpkg -L gedit
        命令:whereis 软件名            示例:whereis gedit

Linux 软件包管理基本操作入门

1、什么是 "软件包管理系统"

大多数现代类 Unix 操作系统都提供了一个集中的软件包管理机制,以帮助用户 搜索、安装 管理 软件。而软件通常以「包」的形式存储在仓库「repository」中,对软件包的使用和管理被称为包管理。而 Linux 包的基本组成部分通常有:共享库、应用程序、服务和文档。

虽然大多数流行的 Linux 发行版在包管理工具、方式和形式都大同小异,但却还是有平台差异:

系统格式工具
Debian.debapt、apt-cache、apt-get、dpkg
Ubuntu.debapt、apt-cache、apt-get、dpkg
CentOS.rpmyum
Fedora.rpmdnf

Debian 及其衍生产品如:Ubuntu、Linux Mint 和 Raspbian 的包格式为.deb文件,APT 是最常见包操作命令,可:搜索库、安装包及其依赖和管理升级。如果需要直接安装现成的 .deb 包时需要使用dpkg 命令。

CentOS、Fedora 及 Red Hat 系列 Linux 使用 RPM 包文件,并使用 yum 命令管理包文件及与软件库交互。在最新的 Fedora 版本中,yum命令已被 dnf 取代进行包管理。

apt-get 高级包装工具

(英语:Advanced Packaging Tools,简称:APT)是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了 Unix系统上管理软件的过程,apt-get命令一般需要root权限执行,所以一般跟着sudo命令。它根yum ,pacman,installpkg等性质差不多,是系统软件的管理工具。会用其中一种基本上都会用了。

apt-get 帮助

用法:apt-get [选项] 命令  
 apt-get [选项] install|remove pkg1 [pkg2 ...]  
 apt-get [选项] source pkg1 [pkg2 ...]  
 apt-get 是一个下载安装软件包的简单命令行接口。  最常用的命令是update(更新) 和 install(安装)。  
  
命令:  
 update     - 重新获取软件包列表  
 upgrade    - 进行更新  
 install    - 安装新的软件包  
 remove     - 移除软件包。卸载软件 
 autoremove - 自动移除全部不使用的软件包  
 purge      - 移除软件包和配置文件  
 source     - 下载源码档案  
 build-dep  - 为源码包配置编译依赖  
 dist-upgrade     - 发行版升级, 参见 apt-get(8)  
 dselect-upgrade  - 依照 dselect 的选择更新  
 clean      - 清除下载的归档文件  
 autoclean  - 清除旧的的已下载的归档文件  
 check      - 检验是否有损坏的依赖  
  
选项:  
 -h   本帮助文件。  
 -q   输出到日志 - 无进展指示  
 -qq  不输出信息,错误除外  
 -d   仅下载 - 不安装或解压归档文件  
 -s   不实际安装。模拟执行命令  
 -y   假定对所有的询问选是,不提示  
 -f   尝试修正系统依赖损坏处  
 -m   如果归档无法定位,尝试继续  
 -u   同时显示更新软件包的列表  
 -b   获取源码包后编译  
 -V   显示详细的版本号  
 -c=? 阅读此配置文件  
 -o=? 设置自定的配置选项,如 -o dir::cache=/tmp  

典型应用

假设想装个赛车类游戏玩玩。有哪些赛车类游戏可供选择呢?
        apt-cache search racing game
出来了一大堆结果。看看有没有更多关于torcs这个游戏的信息。
        apt-cache show torcs
看上去不错。这个游戏是不是已经安装了?最新版本是多少?它属于哪一类软件,universe还是main?
        apt-cache policy torcs
好吧,现在我要来安装它!:apt-get install torcs 
在控制台下我应该调用什么命令来运行这个游戏呢?
在这个例子中,直接用 torcs 就行了。
但并不是每次都这么简单。我们可以通过查找哪些文件被安装到了 “/usr/bin”文件夹下来确定二进制文件名。
对于游戏软件,这些二进制文件将被安装到“/usr/games”下面。对于系统管理工具相应的文件夹是“/usr/sbin”。
        dpkg -L torcs | grep /usr/games/
命令的第一部分显示软件包“torcs”安装的所有文件(您自己试试看)。
命令的第二部分,我们告诉系统只显示前一部分的输出结果中含有“/usr/games”的那些行。
这个游戏很酷哦。说不定还有其他赛道可玩的?
        apt-cache search torcs
我的磁盘空间不够用了。我得把apt的缓存空间清空才行。
        apt-get clean
哦不,老妈叫我把机器上的所有游戏都删掉。但是我想把配置文件保留下来,这样待会我只要重装一下就可以继续玩了。
        apt-get remove torcs
如果我想连配置文件一块删除:
        apt-get remove –purge torcs

额外的软件包 
        deborphan 和 debfoster 工具可以找出已经安装在系统上的不会被用到的软件包。

提高命令行方式下的工作效率
您可以通过定义别名(alias)来提高这些命令的输入速度。
例如,您可以在您的 *~/.bashrc* 文件中添加下列内容
alias acs='apt-cache search'
alias agu='sudo apt-get update'
alias agg='sudo apt-get upgrade'
alias agd='sudo apt-get dist-upgrade'
alias agi='sudo apt-get install'
alias agr='sudo apt-get remove'
或者使用前面介绍的 aptitude 命令,如“alias agi='sudo aptitude install'”。

apt 与 apt-get 命令的区别。

先了解下这两个命令的背景,以及它们要试图达到的目的。

Debian 作为 Ubuntu、Linux Mint 和 elementary OS 等 Linux 操作系统的母板,其具有强健的「包管理」系统,它的每个组件和应用程序都内置在系统中安装的软件包中。Debian 使用一套名为 Advanced Packaging Tool(APT)的工具来管理这种包系统,不过请不要把它与 apt 命令混淆,它们之间是其实不是同一个东西。

在基于 Debian 的 Linux 发行版中,有各种工具可以与 APT 进行交互,以方便用户安装、删除和管理的软件包。apt-get 便是其中一款广受欢迎的命令行工具,另外一款较为流行的是 Aptitude 这一命令行与 GUI 兼顾的小工具。

如果你已阅读过 apt-get 命令指南,可能已经遇到过许多类似的命令,如 apt-cache、apt-config 等。如你所见,这些命令都比较低级又包含众多功能,普通的 Linux 用户也许永远都不会使用到。换种说法来说,就是最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。

apt 命令的引入就是为了解决命令过于分散的问题,它包括了 apt-get 命令出现以来使用最广泛的功能选项,以及 apt-cache 和 apt-config 命令中很少用到的功能。

在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

简单来说就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

使用 apt 还是 apt-get

        目前还没有任何 Linux 发行版官方放出 apt-get 将被停用的消息,至少它还有比 apt 更多、更细化的操作功能。对于低级操作,仍然需要 apt-get。

        既然两个命令都有用,那么我该使用 apt 还是 apt-get 呢?作为一个常规 Linux 用户,系统极客建议大家尽快适应并开始首先使用 apt。不仅因为广大 Linux 发行商都在推荐 apt,更主要的还是它提供了 Linux 包管理的必要选项。

        最重要的是,apt 命令选项更少更易记,因此也更易用,所以没理由继续坚持 apt-get。

最后提供两点使用上的建议:

  • apt 可以看作 apt-get 和 apt-cache 命令的子集,可以为包管理提供必要的命令选项。
  • apt-get 虽然没被弃用,但作为普通用户,还是应该首先使用 apt

虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。

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

当然,apt 还有一些自己的命令:

新的apt命令命令的功能
apt list列出包含条件的包(已安装,可升级等)
apt edit-sources编辑源列表

需要大家注意的是:apt 命令也还在不断发展, 因此,你可能会在将来的版本中看到新的选项。

aptitude

aptitude 和 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的 包管理工具。但是 aptitude 与 apt-get 不同的是,aptitude 在处理依赖问题上更佳一些。举例来说,aptitude 在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

由于 aptitude 比 apt-get 了解更多信息,可以说它更适合用来进行安装和卸载。

一些常用 aptitude 命令

aptitude update              更新可用的包列表
aptitude upgrade             升级可用的包
aptitude dist-upgrade        将系统升级到新的发行版
aptitude install pkgname     安装包
aptitude remove pkgname      删除包
aptitude purge pkgname       删除包及其配置文件
aptitude search string       搜索包
aptitude show pkgname        显示包的详细信息
aptitude clean               删除下载的包文件
aptitude autoclean           仅删除过期的包文件


1.aptitude 解决得更好的地方: 
        install, remove, reinstall(apt-get无此功能), 
        show(apt-get无此功能), search(apt-get无此功能), 
        hold(apt-get无此功能), unhold(apt-get无此功能), 

2.apt-get 解决得更好的地方: 
        source(aptitude无此功能), build-dep (低版本的aptitude没有build-dep功能)

3.apt-get 跟 aptitude 没什么区别的地方:update, upgrade 
        apt-get upgrade      = aptitude safe-upgrade
        apt-get dist-upgrade = aptitude full-upgrgade

其实用的比较多的是(这里以Linux上很有名的开源播放器VLC为例)
sudo apt-get install vlc
sudo apt-get remove vlc
apt-get update  更新源
apt-get upgrade 更新已安装的包

有时候要添加软件源也可用这个命令:sudo apt-get add repostory:[软件源地址] 然后用apt-get update 更新源

dpkg、gdebi (推荐)

  • dpkg :dpkg 在安装手动下载的 deb包时,没法自动解决包的依赖关系,需要手动安装包需要的依赖。
  • gdebi:可以自动计算依赖关系并安装。gdebi 也命令行模式运行(sudo gdebi package.deb),功能和 GUI 模式下完全一样。试下这个命令你就不想用 dpkg -i

安装 gdebi

sudo apt-get update
sudo apt-get install gdebi
例如:安装搜狗输入法,我们在终端先进入到相应deb的文件夹后
sudo gdebi sogoupinyin.deb

dpkg 是一个 Debian 的一个命令行工具,它可以用来安装、删除、构建和管理 Debian 的软件包。

dpkg -i package.deb        # 安装包
dpkg -r package            # 删除包
dpkg -P package            # 删除包(包括配置文件)
sudo dpkg -S file          # 这个文件属于哪个已安装软件包。
sudo dpkg -L package       # 列出软件包中的所有文件。
dpkg -l package            # 显示该包的版本
dpkg --unpack package.deb  # 解开deb包的内容
dpkg -l                    # 列出当前已安装的包
dpkg -c package.deb        # 列出deb包的内容
dpkg --configure package   # 配置包

下面是它的一些命令解释:

.1)安装软件
        命令行:dpkg -i <.deb file name>
        示例:dpkg -i avg71flm_r28-1_i386.deb
        示例: dpkg -i ~/Download/mozybackup_i386.deb
2)安装一个目录下面所有的软件包
        命令行:dpkg -R
        示例:dpkg -R /usr/local/src
3)释放软件包,但是不进行配置,解开 deb 包的内容。
        命令行:dpkg –unpack package_file 如果和-R一起使用,参数可以是一个目录
        示例:dpkg –unpack avg71flm_r28-1_i386.deb
4)重新配置和释放软件包。配置包
        命令行:dpkg –configure package_file
        如果和-a一起使用,将配置所有没有配置的软件包
        示例:dpkg –configure avg71flm_r28-1_i386.deb
5)删除软件包(保留其配置信息)
        命令行:dpkg -r
        示例:dpkg -r avg71flm.deb
        示例:dpkg -r mozybackup.deb
6)替代软件包的信息
        命令行:dpkg –update-avail <Packages-file>
7)合并软件包信息
        dpkg –merge-avail <Packages-file>
8)从软件包里面读取软件的信息
        命令行:dpkg -A package_file
9)删除一个包(包括配置信息)
        命令行:dpkg -P
        示例:dpkg -P mozybackup
10)丢失所有的Uninstall的软件包信息
        命令行:dpkg –forget-old-unavail
11)删除软件包的Avaliable信息
        命令行:dpkg –clear-avail
12)查找只有部分安装的软件包信息
        命令行:dpkg -C
13)比较同一个包的不同版本之间的差别
        命令行:dpkg –compare-versions ver1 op ver2
14)显示帮助信息
        命令行:dpkg –help
15)显示dpkg的Licence
        命令行:dpkg –licence (or) dpkg –license
16)显示dpkg的版本号
        命令行:dpkg –version
17)建立一个deb文件
        命令行:dpkg -b direc×y [filename]
18)显示一个Deb文件的内容
        命令行:dpkg -c filename
        列出 deb 包的内容
19)显示一个Deb的说明
        命令行:dpkg -I filename [control-file]
20)搜索Deb包
        命令行:dpkg -l package-name-pattern
        示例:dpkg -I vim
21) 显示所有已经安装的Deb包,同时显示版本号以及简短说明。即显示包的版本
        命令行:dpkg -l
        示例:dpkg -l mozybackup
22)查找指定包的状态信息
        命令行:dpkg -s package-name
        示例:dpkg -s ssh
        示例: dpkg -s mozybackup
23)安装完包后,可以用此命令查看软件安装到什么地方,
        命令行:dpkg -L package-Name
        示例:dpkg -L apache2
        示例: dpkg -L mozybackup
24)搜索指定包里面的文件(模糊查询)
        命令行:dpkg -S filename-search-pattern
25)显示包的具体信息
        命令行:dpkg -p package-name
        示例:dpkg -p cacti

dpkg -S keyword   搜索所属的包内容

dpkg、apt-get、aptitude 区别

  1. dpkg 绕过 apt 包管理数据库对软件包进行操作,所以你用 dpkg 安装过的软件包,用 apt 可以再安装一遍,系统不知道之前安装过了,将会覆盖之前 dpkg 的安装。dpkg 是用来安装 .deb 文件,但不会解决模块的依赖关系,且不会关心 ubuntu 的软件仓库内的软件,可以用于安装本地的 deb 文件
  2. apt 会解决安装模块的依赖问题并会咨询软件仓库,但不会安装本地的 deb 文件。apt 是建立在 dpkg 之上的软件管理工具
  3. aptitude 与 apt-get 一样,是 Debian 及其衍生系统功能极其强大的 包管理工具aptitude 与 apt-get 不同的是在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样系统中不会残留无用的包整个系统更为干净。

安装软件包

dpkg -i package_name.deb    # 安装本地软件包,不解决依赖关系
apt-get install package     # 在线安装软件包
sudo apt-get install packagename   # 安装一个新软件包(参见下文的aptitude )
aptitude install pattern    # 在线安装软件包
apt-get install package     --reinstall   # 重新安装软件包
apitude reinstall package   # 重新安装软件包

移除软件包

dpkg -r package             # 删除软件包
apt-get remove package      # 删除软件包
sudo apt-get remove packagename        # 卸载一个已安装的软件包(保留配置文件)
aptitude remove package     # 删除软件包
dpkg -P                     # 删除软件包及配置文件
apt-get remove package --purge    # 删除软件包及配置文件
sudo apt-get --purge remove packagename # 卸载一个已安装的软件包(删除配置文件)
apitude purge pattern             # 删除软件包及配置文件

apt-get autoremove     # 自动移除软件包,删除不再需要的软件包
注:aptitude 没有,它会自动解决这件事


# 有些软件很难卸载,而且还阻止了别的软件的应用 ,就可以用这个,不过有点冒险。
sudo dpkg –force-all –purge packagename 

# 会把已装或已卸的软件都备份在硬盘上,所以如果需要空间的话,可以让这个命令来删除你已经删掉的软件
sudo apt-get autoclean apt

  • apt-get autoremove    删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件;高能警告:慎用本命令,它会在你不知情的情况下,一股脑删除很多“它认为”你不再使用的软件;
  • apt-get remove    删除已安装的软件包(保留配置文件),不会删除依赖软件包,保留配置文件;
  • apt-get purge    删除已安装的软件包(不保留配置文件),删除软件包,同时删除相应依赖软件包;
  • apt-get --purge remove    同apt-get purge
  • apt-get autoclean    删除为了满足某些依赖安装的,但现在不再需要的软件包;apt的底层包是dpkg, 而dpkg安装软件包时, 会将*.deb文件放在/var/cache/apt/archives/中;因此本命令会删除该目录下已经过期的deb;
  • apt-get clean    删除已经安装过的的软件安装包;即自动将/var/cache/apt/archives/下的所有deb删掉,相当于清理下载的软件安装包;
     

那么如何彻底卸载软件呢? 如下:

apt-get --purge remove <package>                # 删除软件及其配置文件
apt-get autoremove <package>                    # 删除没用的依赖包
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P        # 清理dpkg的列表中有“rc”状态的软件包

可以输入dpkg -l 来查看软件的状态,输入dpkg -P 来卸载软件。因为 dpkg --remove 只是删除安装的文件,但不删除配置文件。而 dpkg --purge 则安装文件和配置文件都删除。

清除下载的软件包

apt-get clean        # 清除 /var/cache/apt/archives 目录,
                     # 这个命令会把安装的软件的备份也删除,不过这样不会影响软件的使用的。
aptitude clean       # 清除 /var/cache/apt/archives 目录
apt-get autoclean    # 清除 /var/cache/apt/archives 目录,不过只清理过时的包
aptitude autoclean   # 清除 /var/cache/apt/archives 目录,不过只清理过时的包

编译相关   

apt-get source package      # 获取源码
apt-get build-dep package   # 解决编译源码 package 的依赖关系
aptitude build-dep pattern  # 解决编译源码 pattern 的依赖关系

平台相关

apt-cross --arch ARCH --show package     # 显示属于 ARCH 构架的 package 软件包信息
apt-cross --arch ARCH --get package      # 下载属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --install package  # 安装属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --remove package   # 移除属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --purge package    # 移除属于 ARCH 构架的 package 软件包
apt-cross --arch ARCH --update           # 升级属于 ARCH 构架的 package 软件包

注:慎重考虑要不要用这种方法来安装不同构架的软件包,这样会破坏系统。对于 amd64 的用户可能需要强制安装某些 i386 的包,千万不要把原来 amd64 本身的文件给 replace 了。最好只是安装一些 lib 到 /usr/lib32 目录下。同样地,可以用 apt-file 看某个其它构架的软件包包含哪些文件,或者是文件属于哪个包,不过记得最先要用 apt-file --architecture ARCH update 来升级apt-file 的数据库,在 search 或 show 时也要指定 ARCH。

更新源

apt-get update          # 更新源
sudo apt-get update     # 修改 /etc/apt/sources.list 或 /etc/apt/preferences 后运行命令。
aptitude update         # 更新源

更新系统

apt-get upgrade        #更新所有已安装的软件包
aptitude safe-upgrade  #更新已经安装的软件包
apt-get dist-upgrade   #将系统升级到新版本
aptitude full-upgrade  #将系统升级到新版本

2、更新本地包数据库列表

大多数 Linux 都使用本地数据库来存储远程可用的包仓库列表,所以在安装或升级包之前最好更新一下这个数据库。

系统命令
Debian / Ubuntusudo apt-get update
CentOSyum check-update
Fedoradnf check-update

使用的时候最好先配置下国内的源

apt update 是更新软件列表,apt upgrade 是更新软件。

3、升级已安装的包

在没有包管理方式时,要升级并保持 Linux 已装软件处在最新版本是一个巨大的工程,管理员和用户不得不手动跟踪上游软件版本变化及安全警告。在有了包管理系统之后,只需几条命令便可保持软件最新。

系统命令备注
Debian / Ubuntusudo apt-get upgrade仅升级已安装的软件包
sudo apt-get dist-upgrade可添加或删除程序包,以满足新的依赖。
CentOSsudo yum update
Fedorasudo dnf upgrade

4、查找 / 搜索 软件包

大多数 Linux 桌面版本都提供用户可搜索和安装软包的界面,这是找寻和安装软件的最佳方法。但对于追求效率和服务器管理员来说,使用命令行工具查找/搜索软件包才是正途。

系统命令备注
Debian / Ubuntuapt-cache search 搜索内容
CentOSyum search 搜索内容
yum search all 搜索内容搜索所有内容,包括包描述。
Fedoradnf search 搜索内容
dnf search all 搜索内容搜索所有内容,包括包描述。

5、查看某个软件包信息

在决定安装哪个包之前,我们往往都需要查看该软件包的详细说明。包的说明文件中通常包括:包名、版本号及依赖列表等元数据,可以使用如下命令来查看。

系统命令备注
Debian / Ubuntuapt-cache show 包名显示有关软件包的本地缓存信息
dpkg -s 包名显示包的当前安装状态
CentOSyum info 包名
yum deplist 包名列出包的以来
Fedoradnf info 包名
dnf repoquery –requires 包名列出包的以来

6、从软件仓库安装包

一旦我们知道某个软件包的名称之后,便可以使用如下命令从软件仓库安装包。

系统命令备注
Debian / Ubuntusudo apt-get install 包名
sudo apt-get install 包1 包2 …安装所有列出的包
sudo apt-get install -y 包名无需提示直接安装
CentOSsudo yum install 包名
sudo yum install 包1 包2 …安装所有列出的包
sudo yum install -y 包名无需提示直接安装
Fedorasudo dnf install 包名
sudo dnf install 包1 包2 …安装所有列出的包
sudo dnf install -y 包名无需提示直接安装

apt-get 常用命令如下:

apt-cache search package  搜索包
apt-cache show package    获取包的相关信息,如说明、大小、版本等
sudo apt-get install package             安装包
sudo apt-get install package --reinstall  重新安装包
sudo apt-get -f install              修复安装"-f = --fix-missing"
sudo apt-get remove package          删除包
sudo apt-get remove package --purge  删除包,包括删除配置文件等
sudo apt-get update             更新源
sudo apt-get upgrade            更新已安装的包
sudo apt-get dist-upgrade       升级系统
sudo apt-get dselect-upgrade    使用 dselect 升级
apt-cache depends package       了解使用依赖
apt-cache rdepends package      是查看该包被哪些包依赖
sudo apt-get build-dep package  安装相关的编译环境
apt-get source package          下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean  清理无用的包
sudo apt-get check              检查是否有损坏的依赖


#  有些软件很难卸载,而且还阻止了别的软件的应用 ,就可以用这个,不过有点冒险。
dpkg --force-all --purge packagename
apt-cache showpkg pkgs    显示软件包信息。
apt-cache dumpavail       打印可用软件包列表。
apt-cache show pkgs       显示软件包记录,类似于dpkg –print-avail。
apt-cache pkgnames        打印软件包列表中所有软件包的名称。
dpkg -S file              这个文件属于哪个已安装软件包。
dpkg -L package           列出软件包中的所有文件。

# 列出所有与模式相匹配的软件包。支持模糊搜索:*package-name-pattern*
sudo dpkg -l package-name-pattern

7、从本地文件系统直接安装包

很多时候,我们在进行测试或从某个地方直接拿到软件包之后需要从本地文件系统直接安装包。Debian 及衍生系统可以使用 dpkg 进行安装,CentOS 和 Fedora 系统使用 yum  dnf 命令进行安装。

系统命令备注
Debian / Ubuntusudo dpkg -i 包名.deb
sudo apt-get install -y gdebi && sudo gdebi 包名.deb使用 gdebi 检索缺少的依赖关系
CentOSsudo yum install 包名.rpm
Fedorasudo dnf install 包名.rpm

rpm、deb、tar.gz、tar.bz2、apt、bin 

rpm 包 安装

1、找到相应的软件包,比如 soft.version.rpm,下载到本机某个目录; 
2、打开一个终端,su - 成 root 用户; 
3、cd soft.version.rpm 所在的目录; 
4、输入 rpm -ivh soft.version.rpm 

deb 包 安装

1、找到相应的软件包,比如 soft.version.deb,下载到本机某个目录; 
2、打开一个终端,su - 成 root 用户; 
3、cd soft.version.deb 所在的目录; 
4、输入 dpkg -i soft.version.deb 

tar.gz 源代码 安装

1、找到相应的软件包,比如soft.tar.gz,下载到本机某个目录; 
2、打开一个终端,su -成root用户; 
3、cd soft.tar.gz所在的目录; 
4、tar -xzvf soft.tar.gz //一般会生成一个soft目录 
5、cd soft 
6、./configure 
7、make 
8、make install 

tar.bz2 源代码 安装

1、找到相应的软件包,比如soft.tar.bz2,下载到本机某个目录; 
2、打开一个终端,su -成root用户; 
3、cd soft.tar.bz2所在的目录; 
4、tar -xjvf soft.tar.bz2 //一般会生成一个soft目录 
5、cd soft 
6、./configure 
7、make 
8、make install 

apt 方式安装

1、打开一个终端,su -成root用户; 
2、apt-cache search soft 注:soft是你要找的软件的名称或相关信息 
3、如果2中找到了软件soft.version,则用apt-get install soft.version命令安 装软件 
注:只要你可以上网,只需要用apt-cache search查找软件,用 apt-get install 软件 

bin 文件安装

如果你下载到的软件名是soft.bin,一般情况下是个可执行文件,安装方法如下: 
1、打开一个终端,su -成root用户; 
2、chmod +x soft.bin 
3、./soft.bin //运行这个命令就可以安装软件了  

解压缩后直接运行

有些软件是不需要安装的,自带 jre 解压缩后可直接运行。
        1、 打开一个终端,su - 成 root 用户; 
        2、 tar -xzvf lumaqq.tar.gz  // 这一步会生成一个叫 LumaQQ 的目录 
        3、 cd LumaQQ 
        4、 chmod +x lumaqq  // 设置 lumaqq 这个程序文件为可运行 
        5、 此时就可以运行 lumaqq 了,用命令 ./lumaqq 即可,但每次运行要输入全路径或切换到刚才生成的LumaQQ目录里 
        6、 为了保证不设置路径就可以用,你可以在/bin目录下建立一个lumaqq的链接,
            用命令 ln -s lumaqq /bin/ 即可,以后任何时候打开一个终端输入lumaqq 就可以启动 QQ 了 
        7、 如果你要想 lumaqq 有个菜单项,使用菜单编辑工具,比如 Alacarte Menu Editor,
            找到上面生成的 LumaQQ 目录里的 lumaqq 设置一个菜单项就可以了,也可以直接到 /usr/share/applications目录,
            按照里面其它 *.desktop 文件的格式生成一个自己的 desktop 文件即可。

8、移除已安装的包

由于包管理器知道哪些文件是由哪个包提供的,所以在卸载不需要的软件包之后通常可以获得一个干净的系统。

系统命令备注
Debian / Ubuntusudo apt-get remove 包名
sudo apt-get autoremove自动移除已知不需要的包
CentOSsudo yum remove 包名
Fedorasudo dnf erase 包名

9、MAC 中的 brew 

一:简介

Homebrew 是 Mac 中常见的包管理器。类似 ubuntu 下 apt-get,centos 的 yum。

官网地址:https://brew.sh/

二:安装

参考官网:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

如果连接被拒绝,更新 host 文件再次安装

秘籍一:使用wget更新hosts
wget https://raw.githubusercontent.com/racaljk/hosts/master/hosts -qO /tmp/hosts && sudo sh -c 'cat /tmp/hosts > /etc/hosts'

在 Mac 上面安装 HomeBrew 失败的解决方案:修改 hosts 文件:https://blog.csdn.net/qq_33154343/article/details/106030933

苹果 mac 电脑中 brew 的安装使用及卸载详细教程:https://www.jianshu.com/p/65440ecc7023

三:使用

注意:下载太慢,可以替换国内的镜像源

链接地址:https://www.cnblogs.com/jingxiaoniu/p/11123377.html

brew home        用浏览器打开brew的官方网站
brew list redis    查看redis的安装文件
brew cat redis    查看redis的 brew 安装脚本
brew cleanup    删除所有软件升级后的遗留旧版本

查看已经安装的包:
    1.查看已经安装的包:   brew list 【xxx】
    2.查看包信息:         brew info 【xxx】
    3.查看包依赖:         brew deps 【xxx】
    4.查看配置信息:       brew config
    5.诊断问题:           brew doctor
    6.帮助信息:           brew help

更新:
    1.更新Homebrew:              brew update
    2.查看需要更新的包:          brew outdated
    3.更新包(不加报名更新所有):brew upgrade 【xxx】
    4.锁定不想更新的包:          brew pin 【xxx】    
    5.取消锁定:                  brew unpin 【xxx】

清理:
    1.清理旧版本:brew cleanup 【xxx】
    2.强制卸载:brew uninstall 【xxx】--force

服务管理:
    1.列出所有正在运行的服务:brew services list
    2.启动一个服务:brew services start 【xxx】
    3.停止一个服务:brew services stop 【xxx】
    4.重启一个服务:brew services restart 【xxx】
    5.运行一个服务:brew services run 【xxx】
    6.卸载没有使用过的服务:brew services cleanup

仓库管理:
    注意:当 brew 默认仓库 core 中不存在当前应用,可以使用 tap 方法添加应用
    1.已安装的仓库列表:brew tap
    2.添加仓库:brew tap 【user/repo URL】
      注:user/repo github上存在,brew tap user/repo 在本地对https://github.com/user/repo仓库上做了个克隆,完成后brew就可以在这个仓库包上工作,URL方法类同。
    3.移除仓库:brew untap tap

使用示例:

brew services list       # 查看系统通过 brew 安装的服务
brew services cleanup    # 清除已卸载无用的启动配置文件
 

mysql 
    启动:brew services start mysql 
    停止:brew services stop mysql 
    重启:brew services restart mysql

php 
    启动:brew services start php 
    停止:brew services stop php 
    重启:brew services restart php

nginx 
    启动:brew services start nginx 
    停止:brew services stop nginx 
    重启:brew services restart nginx

brew  install mysql  // 安装mysql
brew search mysql    // 搜索mysql
brew info mysql      // 查找mysql相关信息
brew update          // 更新自己的Homebrew
brew outdated        // 会显示哪些软件可以升级
brew upgrade         // 升级所有软件(后面不加名字)
brew upgrade  mysql  // 升级mysql软件
brew cleanup         // 定期清理一些安装包缓存
brew list            // 显示已经安装的软件
brew uninstall xx    // 卸载某些软件
 

brew 安装的根目录 一般在:/usr/local/Cellar/ 下

mac brew :command not founc 解决办法
    sudo vim .bash_profile
    export PATH=/usr/local/bin:$PATH
    source .bash_profile

yum 命令

Redhat 和 Fedora 的软件安装命令是 rpm ,但是用 rpm 安装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级麻烦不说,要是软件不用了需要卸载的话由于卸载掉了某个依赖关系而导致其他的软件不能用。Fedora 终于推出了类似于 ubuntu 中的 apt 的命令 yum

yum,是 Yellow dog Updater Modified 的简称,是 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,可以自动处理依赖性关系,并且一次安装所有依赖的软体包。

yum 的宗旨是自动化地升级,安装 / 移除 rpm 包,收集 rpm 包的相关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含 rpm 的 header, header 包括了 rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。

Yum 有以下特点:
    可以同时配置多个资源库(Repository)
    简洁的配置文件(/etc/yum.conf)
    自动解决增加或删除rpm包时遇到的倚赖性问题
    使用方便
    保持与RPM数据库的一致性

yum 常用命令

yum 的命令形式一般是如下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package ...]是操作的对象。

yum install yum-fastestmirror    自动搜索最快镜像插件
yum install yumex     安装 yum 图形窗口插件
yum grouplist         列出一大堆你已经安装的和能安装的软件套件。

yum check-update           列出所有可更新的软件清单

yum list                       列出所有可安裝的软件清单

yum update                 安装所有更新软件
yum install packageName    仅安装指定的软件
yum remove packageName     删除包

yum search keyword      搜索包
yum info                列出所有软件包的信息
yum info updates        列出所有可更新的软件包信息
yum info installed      列出所有已安裝的软件包信息
yum info packagename    查看包信息。
yum list updates        列出所有可更新的软件包
yum list installed      列出所有已安装的软件包
yum list extras         列出所有已安装但不在 Yum Repository 的软件包
yum provides            列出软件包提供哪些文件

1、安装
yum install    //全部安装
yum install package1     //安装指定的安装包package1
yum groupinsall group1     //安装程序组group1

2 更新和升级

yum update    //全部更新
yum update package1    //更新指定程序包package1
yum check-update    //检查可更新的程序
yum upgrade package1    //升级指定程序包package1
yum groupupdate group1    //升级程序组group1

3 查找和显示
yum info package1    //显示安装包信息package1
yum list    //显示所有已经安装和可以安装的程序包
yum list package1    //显示指定程序包安装情况package1
yum groupinfo group1    //显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序
yum remove | erase package1    //删除程序包package1
yum groupremove group1    //删除程序组group1
yum deplist package1    //查看程序package1依赖情况

5 清除缓存

yum 会把下载的软件包和 header存储在cache中,而不会自动删除。
如果我们觉得它们占用了磁盘空间,可以使用 yum clean 指令进行清除
更精确的用法是yum clean headers清除header,

yum clean all              清除所有
yum clean packages    清除缓存目录(/var/cache/yum)下的软件包
yum clean headers       清除缓存目录(/var/cache/yum)下的 headers
yum clean oldheaders    清除缓存目录(/var/cache/yum)下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders)    //清除缓存目录下的软件包及旧的headers

可以修改配置文件 /etc/yum.conf 选择安装源。更多详细的选项和命令:man yum

使用 yum 安装、卸载软件时有个前提是 yum 安装的软件包都是 rpm 格式的。yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;
如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断
删除同安装一样,yum 也会查询数据库,给出解决依赖关系的提示。

配置 yum 源

yum 源分为:

  • 本地yum源
  • 网络yum源

教你分分钟搞定Linux下yum源配置:https://zhuanlan.zhihu.com/p/71906253

Centos7 配置 yum 源:https://blog.csdn.net/qq_46162321/article/details/115006096

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值