首页 > 系统相关 >[Linux] 包管理器之【APT】

[Linux] 包管理器之【APT】

时间:2025-01-10 23:34:59浏览次数:1  
标签:CASE 管理器 Linux sudo apt APT 软件包 安装

  • 续:

概述:包管理器 APT

  • APT:Advanced Packaging Tool(现名)

解释: Advanced Packaging Tool(apt),作为 原始包管理器DPKG的前端包管理工具(在线包管理器),是Linux下的一款安装包管理工具,是一个客户/服务器系统。
Debian GNU/LinuxLinux APT 的缔造者。
初衷:是利用工具来解决软件安装时候的依赖性问题。

  • APT的核心功能:用于在DebianUbuntu和相关Linux发行版上安装、更新、删除和管理deb软件包。

APTDebian 系列发行版(如 Ubuntu)使用的包管理工具。它通过 .deb 包来管理软件,且支持从网络仓库下载和安装软件。
apt是为交互使用而设计的。
最好在shell脚本中使用apt-getapt-cache,因为它们在不同版本之间向后兼容,并且有更多选项和功能
大多数apt命令必须以具有sudo权限的用户身份运行
apt是Debian及其衍生产品的主要命令行包管理器,它提供了用于搜索、管理和查询的命令行工具、有关软件包的信息以及对所有功能的低级访问
作为操作的一部分,APT使用一个文件列出可获得软件包的镜像站点地址,这个文件就是/etc/apt/sources.list

  • APT工作原理:

用户安装Linux APT客户端工具,查寻APT服务器端的资料库(repositories)上的DEB/RPM软件包信息,并分析软件包之间的依赖性然后下载并进行安装。

  • DPKG 包管理机制:

这个机制最早是由 Debian Linux 社群所开发出来的。
透过 dpkg 的机制, Debian 提供的软体就能够简单的安装起来,同时还能提供安装后的软体资讯,实在非常不错。
只要是衍生于 Debian 的其他 Linux distributions 大多使用 dpkg 这个机制来管理软体的, 包括 Debian / B2D, Ubuntu 等等。

  • dpkg 包管理器的由来:
最初只有.tar.gz的打包文件,用户必须编译每个他想在GNU/Linux上运行的软件。
用户们普遍认为系统很有必要提供一种方法来管理这些安装在机器上的软件包,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为dpkg。
从而著名的“package”概念第一次出现于GNU/Linux系统中

很快一个新的问题难倒了GNU/Linux制作者,他们需要一个快速、实用、高效的方法来安装软件包。
当软件包更新时,这个工具应该能自动管理关联文件和维护已有配置文件。
Debian再次率先解决了这个问题,APT(Advanced Packaging Tool)作为dpkg的前端诞生了。
APT后来还被Conectiva改造用来管理rpm,并被其它Linux发行版本采用为它们的软件包管理工具。

APT常用命令

CASE: 使用apt更新软件包数据库

  • apt实际上在可用软件包的数据库上工作。

如果数据库没有更新,系统将不知道是否有更新的软件包可用。
这就是为什么在安装任何Linux系统之后,第一件事应该是更新apt数据库。

sudo apt-get update

运行此命令时,您将看到从各种服务器检索到的软件包信息。
此命令会从配置的源(通常在 /etc/apt/sources.list 文件中)拉取最新的软件包信息。

CASE: 使用apt升级已安装的软件包

  • 更新软件包数据库后,可以升级已安装的软件包。最方便的方法是升级所有有可用更新的软件包。

您只需使用以下命令即可:

sudo apt-get upgrade

这将显示要升级的软件包数量和所有要升级的软件包

CASE:使用apt完全升级已安装的软件包

  • 升级完全升级的区别在于,如果需要升级整个系统,后者将删除已安装的软件包。
sudo apt-get full-upgrade

CASE:使用apt安装软件包

  • 安装软件包非常简单,只需运行以下命令:
sudo apt install {packageName}

CASE:使用apt移除软件包

  • 要删除已安装的软件包,请键入以下命令:
sudo apt remove {packageName}

还可以指定多个包,以空格分隔:

sudo apt remove package1 package2

remove命令将卸载给定的软件包,但可能会留下一些配置文件。
如果要删除包含所有配置文件的软件包,请使用purge(英译:净化/清洗)而不是remove

CASE: 使用apt删除未使用的软件包

  • 每当在系统上安装依赖于其他软件包的新软件包时,也会安装软件包依赖项。

删除包后,依赖项将保留在系统上。
这些剩余的软件包不再被其他任何东西使用,可以移除。
要删除不需要的依赖项,请使用以下命令:

sudo apt autoremove

CASE:使用apt生成软件包列表

  • list命令允许您列出可用、已安装和可升级的软件包。

要列出所有可用的软件包,请使用以下命令:

sudo apt list

该命令将输出所有包的列表,包括有关包的版本和体系结构的信息。要了解是否安装了特定的软件包,可以使用grep命令过滤输出

sudo apt list | grep {packageName}

CASE: 要仅列出已安装的软件包

sudo apt list --installed

CASE: 获取可升级软件包的列表

  • 在实际升级软件包之前,获取可升级软件包的列表可能很有用:
sudo apt list --upgradeable

CASE: 使用apt搜索软件包

  • 此命令允许您在可用软件包列表中搜索给定软件包:
sudo apt search {packageName}

如果找到,该命令将返回名称与搜索词匹配的包。

CASE: 使用apt显示软件包信息

  • 在删除或安装新软件包之前,有关软件包依赖项、安装大小、软件包源等的信息可能很有用。

要检索有关给定包的信息,请使用show命令:

sudo apt show {packageName}

CASE: 使用apt在不升级的情况下安装软件包

  • 如果出于某种原因,你想安装一个软件包,但不想升级,那么如果已经安装了,在这种情况下,您可以通过以下方式使用下述选项不升级:
sudo apt install <package_name> --no-upgrade

CASE: 使用apt只升级软件包

  • 如果只想升级软件包,但不想安装(如果尚未安装),可以使用以下命令进行升级:
sudo apt install <package_name> --only-upgrade

CASE: 使用apt安装软件的特定版本

  • 默认情况下,将为应用程序安装存储库中可用的最新版本。但如果不想安装最新版本,可以指定版本号。您需要知道要安装的确切版本号。

只需使用包的名称添加=version。 [3]

sudo apt install <package_name>=<version_number>
``

## CASE: 使用apt清理下载文件的存档
```shell
sudo apt-get clean

CASE: 使用apt下载软件源代码

sudo apt-get source <packages>

CASE: 使用apt了解软件依赖关系

sudo apt-cache depends <packages>

CASE: 使用apt检查软件依赖关系

sudo apt-get check

CASE: 使用apt安装相关的编译环境

sudo apt-get build-dep <packages>

Y 推荐文献

X 参考文献

标签:CASE,管理器,Linux,sudo,apt,APT,软件包,安装
From: https://www.cnblogs.com/johnnyzen/p/18664907

相关文章

  • 想在linux平台拥有和vs一样的体验模式吗?只需配置一下你的vim便可以轻松达到,让你日常
            ......
  • Linux基础——kail工具
    一、nmap主机发现和端口扫描1、nmap指定源端口eth0发送扫描┌──(root㉿kali2024)-[~]└─#nmap192.168.190.110-eeth0StartingNmap7.94SVN(https://nmap.org)at2025-01-1019:56HKTNmapscanreportfor192.168.190.110Hostisup(0.0018slatency).Nots......
  • Java实现任务管理器性能网络监控数据
    在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用、磁盘I/O以及网络流量等。对于开发者和系统管理员来说,了解这些性能数据有助于优化应用程序和系统性能。本文将介绍如何使用Java编写一个简单的程序来监控网络性能数据,并展......
  • Java实现任务管理器性能网络监控数据
    在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用、磁盘I/O以及网络流量等。对于开发者和系统管理员来说,了解这些性能数据有助于优化应用程序和系统性能。本文将介绍如何使用Java编写一个简单的程序来监控网络性能数据,并展......
  • day13-Linux系统用户管理知识2
    1.passwd1.1更改密码[root@oldboy~]#passwd更改用户root的密码。新的密码:无效的密码:密码少于8个字符重新输入新的密码:passwd:所有的身份验证令牌已经成功更新。#修改其他用户的密码[root@oldboy~]#passwdoldboy更改用户oldboy的密码。新的密码......
  • Linux连接(NFS)群晖NAS遇到的问题(最终选SetGID+umask)
     说明:公司在寻找存储服务器,分布式太贵,后来找来厂家提供服务器试用一段时间,可以的话再买更高型号的来用,此文章记录整个过程,可能比较杂,等以后有时间再来整理吧。需求:想要在服务器之间共同访问并操作这里的存储,并且还要再Windows上查看(需求又改了Windows上也会做增删改的操作。。)......
  • linux: 文本编辑器vim
    文本编辑器vi的工作模式(vim和vi一致)进入vim的方法方法一:输入vim 文件名此时左下角有"文件名" 文件行数,字符数量方法一:输入vim新文件名此时新建了一个文件并进入vim,左下角有"文件名"[NewFile]灰色的长方形就是光标,输入文字,左下角变成了INSERT表......
  • linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包
    关于文件的关键词创建touch删除rm复制cp权限chmod移动mv查看内容cat(全部);head(前10行);tail(末尾10行);more,less查找  find压缩 gzip; bzip打包tar 编辑sed创建文件格式:touch文件名删除文件复制文件移动文件查看文件内......
  • NFCAdapter.stopDiscovery
    NFCAdapter.stopDiscovery(Objectobject)基础库2.11.2开始支持,低版本需做兼容处理。以Promise风格调用:不支持小程序插件:支持微信iOS版:不支持微信Android版:支持相关文档:近场通信(NFC)功能描述参数Objectobject属性类型默认值必填说明suc......
  • NFCAdapter.startDiscovery
    NFCAdapter.startDiscovery(Objectobject)基础库2.11.2开始支持,低版本需做兼容处理。以Promise风格调用:不支持小程序插件:支持微信iOS版:不支持微信Android版:支持相关文档:近场通信(NFC)功能描述参数Objectobject属性类型默认值必填说明su......