当前位置: 首页 > wzjs >正文

网站建设制作设计建设银行网站怎么打印明细

网站建设制作设计,建设银行网站怎么打印明细,珠海网站建设报价,域名一个注册要多久软件包依赖就是软件包关系的一种,一般用 Depends 表示。 每个软件包都可以和其他软件包有各种不同的关系。除 Depends 外,还有 Recommends、Suggests、Pre-Depends、Breaks、Conflicts、Provides 和 Replaces,软件包管理工具(如 …

软件包依赖就是软件包关系的一种,一般用 Depends 表示。

每个软件包都可以和其他软件包有各种不同的关系。除 Depends 外,还有 Recommends、Suggests、Pre-Depends、Breaks、Conflicts、Provides 和 Replaces,软件包管理工具(如 apt-get、aptitude、dpkg)在安装、升级或删除软件包时,会依据这些关系采取适当的操作,以确保系统的稳定性和一致性。

1 软件包关系说明

Depends

  • 定义:此软件包仅当它依赖的软件包均已安装后才可以安装。
  • 用途:指定的软件包是程序所必须的软件包,如果缺少这些依赖,程序将无法正常运行或存在严重问题。

Recommends

  • 定义:推荐安装的软件包,但不是严格必须的。
  • 用途:这些软件包可以增强程序功能。aptitude 和 apt-get 会在安装你的软件包时自动安装推荐的软件包,用户可以选择禁用这个行为。dpkg 会忽略此项。

Suggests

  • 定义:建议安装的软件包,不是必须的。
  • 用途:这些软件包可以与程序更好地协同工作,但不是必须的。所有前端程序通常不会询问是否安装建议的软件包。aptitude 可以配置为自动安装建议的软件包,但默认不会这样做。dpkg 和 apt-get 会忽略此项。

Pre-Depends

  • 定义:此项中的依赖相比于 Depends 重要程度更高,仅在预依赖的软件包已安装并正确配置后,才能安装此软件包
  • 用途:指定的软件包是程序安装前必须安装和配置完成的。应非常慎重使用,建议尽量避免使用此项。

Breaks

  • 定义:当前软件包安装后,会破坏列出的软件包。
  • 用途:通常 Breaks 会附带一个版本号说明,表示版本低于某个特定值的软件包会被破坏。软件包管理工具会选择升级这些被破坏的软件包作为解决方案。

Provides

  • 定义:声明当前软件包提供了某个已存在的虚拟软件包的功能。
  • 用途:用于某些类型的软件包定义多个备用虚拟名称。

Replaces

  • 定义:当当前软件包要替换其他软件包的某些文件,或完全替换另一个软件包时使用。
  • 用途:列出将被替换的软件包。通常与 Conflicts 一起使用,以确保被替换的软件包中的文件会被当前软件包中的文件覆盖。

这有助于开发者正确填写软件包关系项,确保软件包能在用户的系统上正常安装和运行。

2 依赖项填写规范

debian/control 文件是 Debian 软件包的元数据文件,包含了关于包的各种信息,包括包名、版本、维护者、依赖关系等。

所有的软件包关系都定义在在 debian/control 文件中,其中 Depends 字段主要负责控制软件包的依赖关系,用于声明软件包的直接依赖。

以下是一个 control 示例:

Source: example-package-kylin
Section: web
Priority: optional
Maintainer: Example Maintainer <maintainer@kylinos.cn>
Build-Depends: debhelper (>= 11), dh-systemd (>= 1.5)
Standards-Version: 4.1.4
Homepage: https://www.kylinos.cn/Package: example-package-kylin
Architecture: any
Depends: libwebp6 (>= 0.6.1), libc6 (>> 2.27), python3 | python3-minimal, ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}
Description: An example package for Kylin systemsThis package provides an example service with web capabilities.It relies on several other packages to function properly, includingessential libraries and optional Python support.

Depends 字段填写指导

1. 确定必需依赖包:列出在安装或运行软件包时必须存在的其他软件包。这些是绝对必要的依赖包。如果缺少其中任何一个,软件包将无法正常工作。

2. 格式Depends 字段的格式为逗号分隔的依赖项列表。每个依赖项可以指定包名和可选的版本约束。例如:

Depends: libwebp6 (>= 0.6.1), libc6 (>> 2.27)

3. 版本约束:可以使用版本约束来指定依赖包的最低、最高或特定版本。常用的版本约束符号包括:

  1. >= 表示大于或等于
  2. <= 表示小于或等于
  3. = 表示等于
  4. >> 表示严格大于
  5. << 表示严格小于

4. 逻辑运算符:可以使用逻辑运算符来指定依赖关系的选择。例如,使用竖线 | 表示逻辑 “或” 关系,表示多个包中的一个即可满足依赖关系:

Depends: python3 | python3-minimal

5. 虚拟包:如果依赖项是一个虚拟包,确保列出的包提供了该虚拟包。例如:

Depends: mail-transport-agent

注释:在麒麟系统中,虚拟包是一个抽象的包概念,它本身不直接对应任何实际的软件包,而是由一个或多个实际的软件包提供相应的功能。虚拟包用来表示一组可以互换的软件包的功能。

示例:mail-transport-agent

  1. 定义:mail-transport-agent(MTA)是一个虚拟包,它代表了一个邮件传输代理的功能,这是用于在网络上发送和接收电子邮件的软件。
  2. 提供者:多个包如 exim4-daemon-light, postfix, sendmail 等都可以提供 mail-transport-agent 虚拟包。这意味着这些软件都具备邮件传输代理的功能。
  3. 实现方式:安装此软件包时,麒麟系统的包管理系统会检查系统中是否已安装提供 mail-transport-agent 虚拟包的软件包。如果没有,系统会提示用户安装一个提供该虚拟包的软件包。用户可以选择安装 exim4, postfix, sendmail 或任何其他提供此虚拟包的软件。

这种方式确保软件包能够适应用户的不同选择,而不是硬编码对某个特定软件包的依赖,提高了包的通用性和灵活性。

6. 自动依赖:当软件包依赖于某些共享库或其他资源时,这些依赖可能需要通过特殊的变量(例如: ${shlibs:Depends} , ${misc:Depends} 和 ${perl:Depends} )来自动生成,以确保软件包能够正确地链接到所需的库。

Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}

以上填写规范中,尤其需要注意自动依赖的填写,后续会针对自动依赖做说明

3 自动依赖

在软件包的构建过程中,自动依赖变量 ${shlibs:Depends}、${perl:Depends} 和 ${misc:Depends} 的使用大大简化了依赖管理工作。这些变量在软件包的编译过程中,通过 debhelper 工具自动替换为具体的依赖包列表,确保软件包在运行时所需的所有库和组件都会被正确安装。

${shlibs:Depends}

用途:自动添加由共享库引起的依赖,主要针对依赖特定版本动态链接库的 C 和 C++ 程序。

原理:dpkg-shlibdeps 工具在构建过程中扫描当前编译的软件包所生成的可执行文件和动态库,分析它们所依赖的共享库,并根据编译环境中提供的 /var/lib/dpkg/info/*.symbols 或 *.shlibs 文件确定所需的包及其版本要求,自动将这些依赖添加到 Depends 字段。

  • 共享库扫描:dpkg-shlibdeps 工具会扫描软件包中的二进制文件,确定其所链接的共享库以及使用的符号。
  • 符号文件:/var/lib/dpkg/info/*.symbols 文件包含了共享库的符号信息,用于精确确定依赖关系。开发者应当维护好这些符号文件,以确保依赖关系的准确性。
  • 版本控制:基于符号文件,dpkg-shlibdeps 会为每个依赖库生成准确的版本需求,避免由于库版本不匹配导致的运行时错误。

${perl:Depends}

用途:自动包括 Perl 脚本或模块所需的 Perl 版本和其他模块依赖。

原理:dh_perl 工具分析 Perl 程序的用法,自动识别并添加所需的 Perl 版本和 CPAN 模块依赖。

  • Perl 版本:dh_perl 工具能够识别所需的 Perl 版本,并将其添加到依赖列表中。
  • 模块依赖:对于使用 CPAN 模块的脚本,dh_perl 会自动添加这些模块的依赖,确保在安装包时,这些模块也会一并安装。

${misc:Depends}

用途:包含难以归类的杂项依赖。

原理:如果你的软件包需要一些特殊的工具或脚本来安装,而这些工具和脚本的依赖项不属于共享库或 Perl 模块,那么这些依赖项会被 ${misc:Depends} 自动添加。

  • 杂项依赖:对于那些不属于共享库或 Perl 模块的依赖项,misc:Depends 可以确保它们也会被正确包含。
  • 举例:假设你在使用 debhelper 工具来帮助安装你的软件包,这些工具可能需要额外的一些依赖项。${misc:Depends} 会自动识别并添加这些依赖,以确保你的软件包能正确安装和运行。


文章转载自:

http://vedxjx78.fjkkx.cn
http://tOlenvEH.fjkkx.cn
http://ThWlGfmR.fjkkx.cn
http://tbiRJNJ9.fjkkx.cn
http://uKYL7zeN.fjkkx.cn
http://cSjV5KFG.fjkkx.cn
http://gbrxcnd4.fjkkx.cn
http://M0zvFy1j.fjkkx.cn
http://GzZG5Wkz.fjkkx.cn
http://4XhwecZr.fjkkx.cn
http://uXuDyV10.fjkkx.cn
http://FopRLyyn.fjkkx.cn
http://ZKzIfJVi.fjkkx.cn
http://D2EKO8C5.fjkkx.cn
http://98BQc6U5.fjkkx.cn
http://aOvvW0sa.fjkkx.cn
http://dqfi7A0H.fjkkx.cn
http://AMplSbdI.fjkkx.cn
http://XTBlyhcZ.fjkkx.cn
http://RTYTiHKC.fjkkx.cn
http://svu2fAac.fjkkx.cn
http://WgRDiFgP.fjkkx.cn
http://3lfO0VFQ.fjkkx.cn
http://OmBVAqEn.fjkkx.cn
http://sHunu3zA.fjkkx.cn
http://LaNnELFN.fjkkx.cn
http://t5jwvKOU.fjkkx.cn
http://KEVMvikh.fjkkx.cn
http://XQ3lni2B.fjkkx.cn
http://v6KiNbIK.fjkkx.cn
http://www.dtcms.com/wzjs/645193.html

相关文章:

  • 上海嘉定网站建设公司漂亮的数据型网站
  • 网站正在建设中...为什么护卫神华龙网重庆网络问政平台
  • 四川网站建设多少钱建站平台wp
  • 网站建设优缺点wordpress 变装小说
  • 网页设计与网站建设全攻略樱桃企业网站管理系统v1.1-cms
  • 浙江建设职业技术学院继续教育学院网站网推app下载
  • 网站建设微信运营推广小程序流量点击推广平台
  • 家用电器行业外贸建站搜房网站建设分析
  • 建设互联网教育网站建筑直聘网
  • 西部数码网站管理助手 v3.0湖南至诚建设机械有限公司网站
  • 金融视频直播网站开发wordpress 4.9.8微博图床
  • sdcms网站建设模板怎么制作属于自己的网站
  • 郑州东区做网站的公司在线商城开发费用
  • 档案网站建设的原则潍坊高级网站建设推广
  • 申请网站多少钱江苏优化网站公司
  • 专业做包装的电商网站用别人网站做app的危害
  • 高密做网站的公司网站建设有哪些优势
  • 茂名网站建设方案开发集美建设局中心网站
  • 企业网络推广做网站推广公司做网站前端后台
  • 网站制作报价优惠河间专业做网站电话
  • 怎么做房产网站wordpress路由正则
  • 深圳招聘网站推荐现代化公司网站建设
  • 建个注册页面网站建站服务的网络公司有哪些
  • 平面设计创意说明新seo排名点击软件
  • 网站建设和运维合同嘉伟网络智能建站
  • 网站建设服务费怎么写分录设计师接私单
  • 网站建设需求说明书wordpress小清新
  • 网站建设与维护制作网页网站降权怎么处理
  • 浙江龙泉市建设局网站最珠海app下载官网
  • 广州的网站建设公司邯郸市都有哪些网络推广公司