• apt-get手册翻译


    前言

    常用debian系的系统,为了彻底搞清楚apt,只得自己翻译手册了,网上也没有齐全的。为了不丢失意思,翻译得比较保守,但是应该能够读懂。按照意思进行了适当的层次划分。
    下面是apt-get的。

    名字

    apt-get - APT包处理实用程序 – 命令行接口

    概要

     apt-get [-asqdyfmubV] [-o=config_string] [-c=config_file]
                   [-t=target_release] [-a=architecture] {update | upgrade |
                   dselect-upgrade | dist-upgrade |
                   install pkg [{=pkg_version_number | /target_release}]...  |
                   remove pkg...  | purge pkg...  |
                   source pkg [{=pkg_version_number | /target_release}]...  |
                   build-dep pkg [{=pkg_version_number | /target_release}]...  |
                   download pkg [{=pkg_version_number | /target_release}]...  | check |
                   clean | autoclean | autoremove | {-v | --version} | {-h | --help}}
    

    描述

    apt-get是处理包的命令行工具,并且可以认为是用户使用APT库的其他工具的的“后端”。存在几个“前端”,比如aptitude(8)synaptic(8)wajig(1)

    除了-h--help外有以下选项:

    • update

      • 这个选项用来同步包索引文件,根据它们的源。可用的包索引取自/etc/apt/sources.list中指定的位置。比如,当使用一个Debian archive时,这条命令会检索并扫描Packages.gz文件,以便能够获取新包或新版本包。
      • update命令应该总是在upgrade或者dist-upgrade之前执行。
      • 请注意,总体进度条是不正确的,因为包大小不能预先知道。
    • upgrade

      • 这个选项用来安装最新版本的包,仅限安装在系统上的,包由/etc/apt/sources.list指明。
      • 已经安装的包会被检索并升级,任何情况下都不会删除当前安装的包;未安装的包也不会被安装。
      • 如果新版本的包必须要更改旧版本的包状态才能安装,那么这次安装就不会执行,而是停留在原来的版本。
      • 应该先用update更新,以便apt-get知道有新版本包可获取。
    • dist-upgrade

      • 这个选项除了执行upgrade,还会智能处理新版本包的依赖变化。apt-get有一个智能的冲突处理系统,它会在必要时升级最重要的包,而牺牲不太重要的软件包。因此dist-upgrade可能会移除一些软件包。
      • 请参阅apt_preferences(5)来了解单个包覆盖的常规设置。
    • dselect-upgrade

      • 这个选项与传统的Debain打包前置frint-enddsesect(1)联合使用。
      • 这个选项会跟踪dselect(1)对可获取包的字段状态的改变,然后执行必要的操作来达到该状态。(例如,删除旧包和安装新包)
    • install

      • 这个选项后跟一个或多个安装或升级所需要的包。每个包是一个包名,不是完全限定名。(比如,在debian中,不应是apt-utils_2.2.4_amd64.deb,而是apt-utils)。
      • 所有要安装的包所需要的包也会被检索并安装。
      • /etc/sources.list用于定位所需要的包。
      • 如果连字符-被附加到包名(没有中间空格),则被识别的包如果被安装了,会被删除。
      • 类似的一个+加号可用于指定一个包被安装。后面的这些特征可用用来覆盖apt-get冲突处理系统的决策。


      • 通过<包名>=<包版本号>,可以选择特定版本的包进行安装。这会定位那个特定的版本来进行安装。或者,可用通过<包名>/<发行版或归档名称(stable, testing, unstable)>来选择包的一个特定的发行。
      • 这两个方法都可以降级软件包,应该小心使用。
      • 如果你想升级一个或多个已经安装的包,也可以用这个,而不是升级系统上的所有包。与upgrade不同,upgrade会升级所有安装了的包,install会安装指定包的最新的版本。只需提供要升级的包的名字,那么如果有一个更新版本可用,它已经它的依赖都会被下载安装。


      • 最后,apt_preferences(5)机制允许您创建一个单个软件包的替代安装策略。


      • 如果没有包与所给的表达式匹配并且表达式含有.?*中的之一,那么它会被假设会一个POSIX正则表达式,然后它会被应用到数据库中的所有包名。所有被匹配的都会被安装(或卸载)。请注意,匹配是由子字符串完成的,所有lo,*会匹配how-lolowest。如果你不想这样,请使用^$来锚定正则表达式,或者创建更具体的表达式。


      • 回退到正则表达式在APT2.0中被废弃,在apt(8)被移除,未来也会从apt-get移除,除了锚定表达式。请改用apt-patterns-
    • reinstall

      • 这个选项是 install --reinstall的别名
    • remove

      • removeinstall相同,只是删除包,而非安装包。注意,删除包会保留其配置系统上的文件。如果+加号附加到包名(没有间隔),则会安装包而非删除包。
    • purge

      • 这个选项与remove相同,只是包会被删除和净化(所有配置文件都会被删除)。
    • source

      • 这个选项使apt-get获取源包,APT会审查可用的包来决定获取哪个源包。会找到最新版本的源包,下载到当前目录,同时遵循尊重默认版本,如果可能,设置选项APT::Default-Release-t或者每个包都用pkg/release语法。


      • 参数被解释为二进制包源包名称。如果你想改变它,查看--only-source选项。


      • 源包通过sources.list中的deb-src行来与二进制包分开追踪。这意味着你需要为每个仓库添加这一行,以指明想要从何处获取源,否则,你要么会得到错误的源版本,要么什么都得不到。


      • 如果--compile选项被指定,那么这个包会被编译为二进制的.deb包,这通过使用--host-architecture选项指定架构、由dpkg-buildpackage编译。如果--download-only被指定,那么源包不会被解压。


      • 一个特定的源版本可以通过后跟=包版本来获取,这与对包文件的机制类似。这可以实现精确匹配包名和包版本。隐式启用APT::Get::Only-Source选项。


      • 注意,dpkg数据库中没有像对二进制包一样安装或跟踪源包,它们只是被下载到当前目录,比如源码压缩包。
    • build-dep

      • 这个选项使apt-get 安装或删除包来试图满足一个源包的构建依赖关系。默认情况下依赖项足够满足本地构建包。如果需要,可用通过--host-architecture选项来指定主机架构。


      • 参数被解释为二进制或源包名。如果想改变,通过--only-source。’
    • satisfy

      • 这个选项使得apt-get满足给定的依赖字符串。这个字符串可能 具有构建配置文件和架构限制列表,在构建依赖项中。它们可选前缀"Conflicts:"来不满足依赖字符串。可用指定多个同类型的字符串。
      • 例子:apt-get satisfy "foo" "Conflicts: bar" "baz(>>1.0)|bar(=2.0), moo"
      • 不支持旧运算符,请使用<=/>=
    • check

      • check 是一种诊断工具;它更新包缓存并检查破坏的依赖关系。
    • download

      • 将给定的二进制包下载到当前目录。
    • clean

      • 清除本地取回的包库。它删除/var/cache/apt/archives/中除lock文件和partial文件夹外的所有文件。
    • autoclean (自1.1起,别名auto-clean)

      • clean会清除本地包文件库。不同之处是它只删除无法不能再下载且基本上无用的包。这允许长期缓存而不会增长到超出控制。配置选项APT::Clean-Installed会阻止 安装了的且被设置关闭的包 被清除。
    • autoremove

      • 用于删除那些为了满足依赖而自动下载, 到了现在不再需要的包。
    • changelog

      • 尝试下载包的changelog,并通过sensible-pager来展示。默认展示安装的版本的changelog。但是,可以指定与install命令同样的选项。
    • indextargets

      • 默认以deb822格式展示apt-get update将会下载的所有数据文件(又名索引目标)的信息列表。
      • 提供--format 选项来修改输出格式 ,也接受默认输出来筛选记录。这个选项主要作为结构,提供给外部的与APT协作的工具,用以获取信息和下载文件的文件名,以便他们也可以使用下载的文件而不是自己再次下载。详细内容请看由apt-doc包提供的。usr/share/doc/apt/acquire-additional-files.md.gz

    选项

    所有命令行选项都可以使用配置文件设置,描述指示要设置的配置选项。
    对于布尔选项您可以使用 -f-,–no-f, -f=no 之类的选项(或其他几种变体)来覆盖配置文件。

    • –no-install-recommends

      • 不要将推荐的软件包视为安装的依赖项。
      • 配置项:APT::Install-Recommends。
    • –install-suggests

      • 将建议的软件包视为安装的依赖项。
      • 配置项:APT::Install-Suggests。
    • -d, --download-only

      • 只下载。包文件仅仅会被获取,不会解包或安装。
      • 配置项:APT::Get::Download-Only。
    • -f, --fix-broken

      • 修复。尝试纠正存在损坏依赖关系的系统。
      • 当与install/remove一起使用时,可以省略任何允许的包,由APT 来推断可能的解决方案。如果指定了包,那么这些包必须彻底纠正问题。
      • 首次运行时,有时这个选项是必要的,因为APT 本身不允许损坏包依赖项存在于系统上。
      • 有可能一个系统的依赖结构可能会损坏到需要手动干预(这通常意味着使用 dpkg --remove 来消除一些有问题的软件包)。
      • 将此选项与 -m 一起使用可能在某些情况下会产生错误。
      • 配置项:APT::Get::Fix-Broken。
    • -m, --ignore-missing, --fix-missing

      • 忽略丢失的包。如果包裹无法取回或没通过完整性检查(损坏的包文件),保留这些包并处理结果。将此选项与-f 在某些情况下可能会产生错误。如果选择了一个包安装(尤其是在命令行中提到的)然后它无法下载,那么它将被静默地阻止。
      • 配置项:APT::Get::Fix-Missing。
    • –no-download

      • 禁止下载包。这最好与--ignore-missing来 强制 APT 仅使用它已经下载的.deb包。
      • 配置项:APT::Get::Download。
    • -q, --quiet

      • 安静的。产生适合记录的输出,省略进度指标。更多的 ,q由安静等级,最多 2。你也可以使用 -q=# 设置安静级别,这会覆盖配置文件。
      • 注意,安静级别2暗含着-y。如果没有-d--print-uris-s只来的误操作修饰符,你永远不应该使用-qq,因为APT可能做一些你不想做的事情。
      • 配置项: quiet。
    • -s, --simulate, --just-print, --dry-run, --recon, --no-act

      • 无操作。基于当前系统状态,对可能发生的事件进行模拟,但是实际上并不会改变系统。锁会被禁用(Debug::NoLocking),以便当apt-get正在执行时,系统状态可以改变。模拟也可用由非root用户执行,尽管他可能没有所有apt配置文件的读取权限,这些配置会使模拟失真。
      • 对于非 root 用户,默认情况下还会显示警告。
      • 配置项:APT::Get::Simulate。
      • 这个选项会打印出一系列行,每行代表一个 dpkg操作:configure (Conf), remove (Remv) 或者unpack (Inst)。正方形括号表示损坏的包,空方括号表示无关紧要的损坏(罕见)。
    • -y, --yes, --assume-yes

      • 对所有的提示自动回复yes,并且以非交互式运行。
      • 如果出现不良情况,例如更改所持有的包,尝试安装未经身份验证的包或删除基本包,那么 apt-get 将中止。
      • 配置项:APT::Get::Assume-Yes。
    • –assume-no

      • 对所有的提示回复no
      • 配置项:APT::Get::Assume-No。
    • –no-show-upgraded

      • 不要显示要升级的所有软件包的列表。
      • 配置项:APT::Get::Show-Upgraded。
    • -V, --verbose-versions

      • 显示被升级和被安装包的完整版本。
      • 配置项目:APT::Get::Show-Versions
    • -a, --host-architecture

      • 这个选项控制构建包的架构,由apt -get source --compile指定,以及如何满足交叉构建依赖项(cross-builddependencies)。
      • 默认是没有设置的,这意味着主机的架构与构建的架构(由 APT::Architecture 定义)相同。
      • 配置项:APT::Get::Host-Architecture。
    • -P, --build-profiles

      • 这个选项控制激活的构建配置文件,其源包由apt-get source --compile构建,以及控制如何满足构建依赖项。
      • 默认情况下,没有构建配置文件处于活动状态。超过一个构建配置文件可以通过逗号相连。
      • 配置项:APT::Build-Profiles。
    • -b, --compile, --build

      • 在下载源包后进行编译。
      • APT::Get::Compile
    • –ignore-hold

      • 忽略包裹持有。这会导致 apt-get 忽略对一个包裹的持有。与 dist-upgrade 结合使用以覆盖大量不受欢迎的持有。
    • –with-new-pkgs

      • upgrade结合使用时,允许安装新包。如果一个安装的包需要新的依赖,这通常是有用的。upgrade不再保留包,而是升级包并安装新的依赖。
      • 注意,upgrade配上这个选项用于也不会移除包,只是允许添加新的。
      • APT::Get::Upgrade-Allow-New。
    • –no-upgrade

      • 不要升级包。与install结合使用时,这个选项会阻止命令行中的包被升级,如果它们已经被安装了。
      • APT::Get::Upgrade。
    • –only-upgrade

      • 不要安装新的包。与install连用时,这个选项会升级已经安装的包,同时忽略安装新的包的请求。
      • APT::Get::Only-Upgrade。
    • –allow-downgrades

      • 这是一个危险的选择,如果 apt 正在降级,它只会继续而不提示。它只应该用在非常特定的场合。使用它可能会破坏您的系统!
      • 配置项:APT::Get::allow-downgrades。在 APT 1.1 中引入。
    • –allow-remove-essential

      • 强制为yes。这是一个危险的选择,会导致 apt 继续而不提示它是否正在删除必需品。它不应该被使用除非在非常特殊的情况下。使用它可能会破坏您的系统!
      • 配置项:APT::Get::allow-remove-essential。介绍在 APT 1.1 中。
    • –allow-change-held-packages

      • 强制yes。这是一个危险的选择,会导致 apt 继续而不提示它是否正在更该持有的包裹。它不应该被使用除非在非常特殊的情况下。使用它可能会破坏您的系统!
      • 配置项:APT::Get::allow-change-held-packages。在 APT 1.1 中引入。
    • –force-yes

      • 强制yes。是一个危险的选择,会导致 apt 继续没有提示它是否正在做一些可能有害的事情。它除非在非常特殊的情况下,否则不应使用。使用强制是可能会破坏您的系统!
      • 配置项:APT::Get::force-yes。这在1.1已被弃用并替换为–allow-unauthenticated , --allow-downgrades , --allow-remove-essential, --allow-change-held-packages。
    • –print-uris

      • 不打印要安装的文件的URI。每个URI 将包含路径、目标文件名、大小和预期的 MD5 哈希。注意,要写入的文件名并不总是匹配远程站点上的文件名!这也适用于sourceupdate命令。与update一起使用时,MD5 和大小不包括在内,由用户解压缩任何压缩的文件。
      • 配置项:APT::Get::Print-URIs。
    • – purge

      • 使用pugre而不是remove可用删除任何东西。一个*会显示在预定被删除的包旁边。
        • remove --purge相当于purge命令
        • 配置项:APT::Get::Purge。
    • –reinstall

      • 重新安装已经安装的包,并且是以最新版的。
      • APT::Get::ReInstall。
    • –list-cleanup

      • 这个选项默认开启。使用--no-list-cleanuo来关闭它。当开启时,apt-get会自动处理/var/lib/apt/lists的内容来确保废弃的文件被删除。关闭它的唯一原因是你经常改变你的源(sources.list)。
      • 配置项:APT::Get::List-Cleanup
    • -t, --target-release, --default-release

      • 这个选项控制了对策略引擎的默认输入。它创建一个默认的pin,优先级为990,使用指定的发行字符串。这会覆盖/etc/apt/preferences中的全局设定。被专门加pin的包不会被这个选项的值影响。简而言之,这个选项让你能简单地控制那个发行包将被取回。一些常见的例子:-t "2.1*" ,-t unstable或者-t sid
      • 配置项:APT::Default-Release;另请参阅 apt_preferences(5) 手册页。
    • –trivial-only

      • 仅执行“微不足道”的操作。逻辑上这可以被认为与 --assume-yes 相关;其中 --assume-yes 对任何提示回答"yes",–trivial-only 将回答"no"。
      • 配置项:APT::Get::Trivial-Only。
    • –mark-auto

      • 这将导致每个包当没有更多手动安装的软件包依赖此软件包时被删除。这等同于为所有已安装的软件包运行 apt-mark auto。
      • 配置项:APT::Get::Mark-Auto。
    • –no-remove

      • 如果要删除任何软件包,apt-get 会立即中止而不提示。
      • 配置项:APT::Get::Remove。
    • –auto-remove, --autoremove

      • 如果命令是installremvoe,则此选项的作用类似于运行 autoremove 命令,删除未使用的依赖包。
      • 配置项:APT::Get::AutomaticRemove。
    • –only-source

      • 仅对 source 和 build-dep 命令有意义。表示给定的源名称不会通过二进制表映射。这意味着如果指定了这个选项,这些命令只会接受源包名称作为参数,而不是接受二进制包名称并查找相应的源包。
      • 配置项:APT::Get::Only-Source。
    • –diff-only, --dsc-only, --tar-only

      • 仅下载源归档的 diff、dsc 或 tar 文件。
      • 配置项:APT::Get::Diff-Only、APT::Get::Dsc-Only 和 APT::Get::Tar-Only。
    • –arch-only

      • 仅处理依赖于架构的构建依赖项。
      • 配置项目:APT::Get::Arch-Only。
    • –indep-only

      • 仅处理与架构无关的构建依赖项。
      • 配置项目:APT::Get::Indep-Only。
    • –allow-unauthenticated

      • 如果包无法通过验证,则忽略并且不提示。这在使用本地存储库时可能很有用,但它是一个巨大的风险 ,如果数据的真实性不能让用户通过其他方式确保。对 sources.list(5) 条目使用 Trusted 选项通常应该优先于这个全局覆盖。
      • 配置项目:APT::Get::AllowUnauthenticated。
    • –no-allow-insecure-repositories

      • 禁止 update 命令从配置的源中获取无法验证的数据。如果没有一个有效的加密签名,APT 将会update失败。另请参阅apt-secure(8)了解概念和含义的详细信息。
      • Acquire::AllowInsecureRepositories 。
    • –allow-releaseinfo-change

      • 允许update命令继续从更改了发行信息存储库中下载数据,这些信息指示了一个新的主要版本。对于这种存储库,APT将在update时失败,直到确认了更改,以确保用户为更改做好了准备。另请参阅 apt-secure(8) 了解有关概念和配置。
      • 存在专家选项(–allow-releaseinfo-change-field)以允许仅更改某些字段,例如来源、标签、代号、套件、版本和默认pin。另见 apt_preferences(5)。
      • 配置项:Acquire::AllowReleaseInfoChange。
    • –show-progress

      • 在终端窗口中显示用户友好的进度信息,当软件包被insatll、upgrade或remove。参阅 apt doc目录中的 README.progress-reporting来获取该数据的机器可解析的版本。
    • –with-source filename

      • 添加给定文件作为元数据的源。可以重复以添加多个文件。请参阅 apt-cache(8) 中的 --with-source 描述更多详细信息。
    • -eany, --error-on=any

      • 如果发生任何错误,即使是暂时的错误,也会使update命令失败。
    • -h, --help

      • 显示简短的使用摘要。
    • -v, --version

      • 显示程序版本。
    • -c, --config-file

      • 指定要使用的配置文件。该程序将读取默认配置文件,然后读取此配置文件。如果配置设置需要在默认配置解析之前生效,使用环境变量 APT_CONFIG 指定文件。有关语法信息,请参阅 apt.conf(5)。
    • -o, --option

      • 设置配置选项;这将设置任意配置选项。语法是 -o Foo::Bar=bar。-o 和 --option 可以使用多次设置不同的选项。

    文件

    • /etc/apt/sources.list

      • 从中获取包裹的位置。
      • 配置项:Dir::Etc::SourceList 。
    • /etc/apt/sources.list.d/

      • 获取包的位置的文件片段。
      • 配置项:目录::Etc::SourceParts。
    • /etc/apt/apt.conf

      • APT 配置文件。
      • 配置项:Dir::Etc::Main。
    • /etc/apt/apt.conf.d/

      • APT 配置文件片段。
      • 配置项:Dir::Etc::Parts。
    • /etc/apt/preferences

      • 版本首选项文件。这是您指定“pinning”的地方,即首选从单独的来源或从不同版本的发行版获取特定包。
      • 配置项:Dir::Etc::Preferences。
    • /etc/apt/preferences.d/

      • 版本首选项的文件片段。
      • 配置项:Dir::Etc::PreferencesParts。
    • /var/cache/apt/archives/

      • 存放获取的包文件的地方。
      • 配置项:Dir::Cache::Archives.。
    • /var/cache/apt/archives/partial/

      • 传输中的包裹文件的存储区域。
      • 配置项:Dir::Cache::Archives (partial会被隐式附加)
    • /var/lib/apt/lists/

      • 存放sources.list(5)中指定的包资源的状态信息。
      • 配置项:Dir::State::Lists。
    • /var/lib/apt/lists/partial/

      • 存放传输中的状态信息。
      • 配置项:Dir::State::Lists (partial将被隐式附加)

    另见

    apt-cache(8), apt-cdrom(8), dpkg(1), sources.list(5), apt.conf(5), apt-config(8), apt-secure(8), The APT User’s guide in /usr/share/doc/apt-doc/,apt_preferences(5), the APT Howto.

    诊断

    apt-get 在正常操作时返回零,在错误时返回十进制 100。

    BUGS

    APT bug page[1]. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.

    作者

    Jason Gunthorpe

    APT team

    批注

    1. APT bug page
      http://bugs.debian.org/src:apt

    APT 2.2.4 08 January 2021 APT-GET(8)



    手册到此结束,下面是一些常见用法与简介。

    用法: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 packagename 搜索包
    apt-cache show packagename 获取包的相关信息,如说明、大小、版本等
    apt-get install packagename 安装包
    apt-get install packagename - - reinstall 重新安装包
    apt-get -f install 修复安装"-f = --fix-missing"
    apt-get remove packagename 删除包
    apt-get remove packagename - - purge 删除包,包括删除配置文件等
    apt-get update 更新源
    apt-get upgrade 更新已安装的包
    apt-get dist-upgrade 升级系统
    apt-get dselect-upgrade 使用 dselect 升级
    apt-cache depends packagename 了解使用依赖
    apt-cache rdepends packagename 是查看该包被哪些包依赖
    apt-get build-dep packagename 安装相关的编译环境
    apt-get source packagename 下载该包的源代码
    apt-get clean 清理无用的包
    apt-get autoclean 清理无用的包
    apt-get check 检查是否有损坏的依赖
    
  • 相关阅读:
    Sql注入(手工注入思路、绕过、防御)
    Kubernetes(K8S)快速搭建typecho个人博客
    shell脚本中的小坑(空格)--两个小栗子
    漫画 | 芯片战争50年,Intel为什么干不掉AMD?
    windows的远程桌面服务RDS存在弱加密证书的漏洞处理
    IEEE802系列协议知识点总结
    Audition 2024 for Mac/Win:音频录制与编辑的卓越之选
    计算机网络TCP/IP四层网络模型初介绍
    rpm环境安装dpkg包管理工具
    【Android知识笔记】进程通信(一)
  • 原文地址:https://blog.csdn.net/qq_51470638/article/details/127090283