-1

我是天真的程序员,可能我的问题会很愚蠢。但是,我的问题仍然令人头疼。我有以下问题。

假设我正在执行一些任务,例如在监视器屏幕上打印你好。那么将这个任务写入包或应用程序的更好方法是什么?但我知道,如果需要包,那么应该包含在构建配方中。

问题:
1. linux中的package和application有什么区别?
2. 如何决定task是写成package还是application?我的意思是,在 linux 中任务应该是包还是应用程序的决定因素是什么?

问候
Linux 学习者。

4

1 回答 1

1

许多新手混淆了配方、包装和应用等术语。应用程序只是一个运行和做某事的程序。它可能是单个二进制可执行映像,例如您的 hello world 示例,或者它可能由多个二进制可执行文件和共享库、模块和配置文件的集合组成,例如 Apache。

在 Linux 中,术语“包”有其特殊的含义。一个包可以看作是一个“相关文件的集合”,其中包含您想要的任何内容。有几种流行的包格式,最流行的是 .deb (Debian) 和 .rpm (Redhat Package Manager)。另一种受嵌入式开发人员欢迎的格式是.ipk,它基本上是一种更适合嵌入式的轻量级包格式。几乎所有熟悉 Linux 的人都对包进行过操作。基于 Debian 的发行版使用 apt-get 和其他实用程序在其系统中添加和删除软件包。Fedora 和其他人使用 yum 和/或 rpm 实用程序。对于使用 .ipk 的嵌入式系统,使用 opkg* 来管理软件包。

openembedded 和 Yocto Project 术语中的“配方”是一个以 .bb 结尾的特殊文件,包含描述如何构建某些东西的元数据,通常是图像或应用程序或共享库。默认情况下,一个配方会生成多个包,但可以生成更多(甚至没有)。例如,一个典型的配方构建一个二进制包、一个 doc 包、一个包含头文件和共享库(如果适用)的 -dev 包,以及一个 -dbg包含带有调试符号的二进制文件的包。

如果您在 openembedded 或 Yocto Project 下构建应用程序,将自动构建包含您的应用程序的包。这取决于您如何使用该软件包。

于 2013-10-01T19:07:20.370 回答