linux - 在 Linux 包或应用程序中编写任务哪种更好

标签 linux cross-compiling embedded-linux openembedded bitbake

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

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

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

问候
Linux 学习者。

最佳答案

许多新手混淆配方、包装和应用这三个术语。应用程序只是一个运行并执行某些操作的程序。它可能是单个二进制可执行镜像,例如您的 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 包、一个包含 header 和共享库(如果适用)的 -dev 包,以及一个包含带有调试符号的二进制文件的 -dbg 包。

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

关于linux - 在 Linux 包或应用程序中编写任务哪种更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18995050/

相关文章:

linux - ubuntu 上的 Cython 独立可执行文件

android - 如何让 Android 使用 ZeroMQ libzmq?

c - mod_timer() 中的内核 panic

linux - 如何将一些文件(可能像/home/eric/libtest0.1.so)添加到 Yocto rootfs lib 文件夹(/lib)?

linux - shell 脚本: Parallelizing commands in bash script under Ubuntu linux

linux - 如何为使用 CPack 创建的 deb 包创建桌面图标?

c++ - 交叉编译无法链接 Curl 和 Crypto

c++ - 链接器中 CXX_FLAGS 的 CMake 交叉编译问题

linux - 如何在不同的驱动程序之间共享设备树节点中的信息

qt - 为什么将一个 QWidget 设置为另一个 QWidget 的父级时不显示?