问题标签 [linux-distro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
818 浏览

linux - 如何构建 Linux 发行版?

免责声明: 这是我第一次深入研究嵌入式 Linux 世界(Ubuntu 和 Debian),尽管我已经使用 Linux 一段时间并且使用过 Raspbian、Armstrong(beaglebone) 和嵌入式 debian 等发行版。标题也可能看起来很笼统,但我真的想不出更好的了,我上下班了,过去几个小时我读了很多书,现在已经过了我睡觉的时间了完整的美容觉,直到星期二我才有机会,所以......我为语法/句法/格式错误道歉。

背景

Debian、Armstrong、Ubuntu、OpenWRT 等软件包是如何构建的?我的意思是,我知道当您将映像下载到像 BeagleBone Black 这样的板上时,您需要构建 u-boot、内核以及软件包,而这些发行版彼此之间的区别在于软件包(我在这里可能是错的,请纠正我)。

我一直在阅读如何构建这些发行版(准确地说是 Armstrong 和 OpenWRT),所有这些都只是告诉我下载他们的存储库并运行他们的配置脚本以使发行版运行。因此,这让我想到:“ (1)如果我有一个不属于 BeagleBone、Raspberry Pi 或任何其他知名板的配置的定制板会发生什么?(2)创建者说了什么?董事会第一次创建独特的董事会?(3)他们是如何制作自己的发行版的?(4)是否可以通过安装我想要的任何软件包来制作我自己的发行版,并使它们与其他的不同?

如您所见,有 4 个不同的问题,因此如有必要,我将使用下一段来解释自己。

(1) 如果我的定制板不属于 BeagleBone、Raspberry Pi 或任何其他知名板的配置,会发生什么情况?

好的。我尝试阅读他们运行的脚本以构建发行版,但它们太长了,已经很晚了,它让我无处可去,我完全迷失了。根据我一直在阅读的内容,我想这些脚本会下载 u-boot、内核和软件包,构建它们并将它们放在同一个映像中(我已经阅读了如何仅使用引导程序和内核“手动执行” )。我想有一些配置文件,一些描述板的地方等等,但我不能确定。我在正确的道路上吗?

(2) 上述板子的创建者在他们第一次创建一个独特的板子时做了什么?

直到你可能会想,“好吧,只要找到一个看起来像你的板的板,修改文件并继续它”。在现实世界中我会这样做,但现在我想学习,只有将所有这些知识都刻在脑海中,我才会学习。问题是,有几个配置文件(根据我从 u-boot 和内核中研究的内容),我身体里的所有东西都告诉我在问这个之前阅读 Embedded Linux Primer, 2nd edition。如果这个问题的答案太深入,请告诉我读一本书,但如果没有,有人可以帮助我吗?

(3)他们是如何制作自己的发行版的?

(4) 是否可以通过安装我想要的任何软件包来制作我自己的发行版并使它们与其他软件包不同?

我知道发行版背后有很多发展,绝不是我的意图诋毁(这是正确的词吗?英语不是我的母语,根据定义它似乎还可以,但是当此处使用)所有这些团队所做的开发。这只是一个问题,我可以构建引导加载程序、内核、其他一些随机程序和软件包并将其称为我自己的发行版吗?如果是这样,我如何将包映像构建到我的发行版中?

如果我从头开始开发一个知名发行版,而不使用他们的脚本,我会构建引导加载程序、内核以及知名发行版使用的所有内容,然后将其绑定到映像中吗?我是否只需构建 u-boot 和内核,然后安装所有其他源并从中构建我的新 linux 映像?

编辑:我喜欢留下上面的文字,以便新读者可以了解我的思路。我发现很难用几句话来表达自己,并把它变成一个“相关的问题”。所以我在下面放了一个标题,这是我目前能想到的最客观的问题。我还编辑了一些文本并给了它一个标题。我只是通过前面的问题,因为它们似乎是有效的,尽管有各种各样的好答案,因为它可以帮助其他人解决我同样的问题。如果需要,我可以删除它们。

跳转到问题

有几个问题我想得到答案,我尽量对他们保持客观

  1. 我可以通过下载 u-boot、内核和特定的 OpenWRT 源代码从源代码构建像 OpenWRT 这样的发行版吗?我的意思是如果我使用他们提供的脚本就可以做到这一点。如果我使用他们的脚本,我知道我可以修改一些配置并将其移植到我自己的“独特”开发板上。yocto 可以成为我的起点吗?

  2. 如何配置自己独特的开发板?如果我只是编译 u-boot 和内核然后在上面安装一些程序可以吗?准备好生产了吗?

  3. 许多人从头开始谈论 Linux。我发现反对它的主要论据是它对生产来说太可怕了。不要告诉我为什么它对生产来说很糟糕,你能告诉我如何让我的设置对生产“好”吗?

0 投票
1 回答
51 浏览

operating-system - 为什么操作系统(全新安装)的大小在增加?

好的,这只是一个简单的问题,但我真的很想从创建发行版(linux)的人那里得到一些答案,或者是否还有人参与 OsX 或 Windows。

安装后的大小似乎在增加,Windows 10 需要 20GB 的磁盘空间(64 位)。我想内核不是问题,所以问题出在应用程序(即用户空间)。但是我看不到操作系统打包的应用程序数量增加了,至少没有大的增加,所以问题是......他们是如何编写它们的,运行时支持等。

有人可以对此发表评论吗?

0 投票
4 回答
1388 浏览

linux - 我如何知道发行版使用的是哪个 linux 内核版本?

当我跑

我在我的 Debian7 上得到 3.2.0-4-686-pae,在我的 Gentoo 上得到 4.4.26-gentoo。

但是我在任何地方都找不到这些发行版使用的 Linux 内核源代码版本。如果我理解正确,所有发行版都从这里https://www.kernel.org获取内核源代码。那么,例如,我如何从该站点找出哪些 Linux 内核版本使用 4.4.26-gentoo 或 3.2.0-4-686-pae?

0 投票
2 回答
276 浏览

c - 在编译时和/或运行时检测正在运行的 Linux 发行版?

我正在 Kali Linux 中制作一个程序,我想让它只在 Kali 中工作。我可以使用 C 来做到这一点,就像:

为了检查用户的操作系统是否是 windows,然后在脚本中检查定义的变量 os_platform,但我搜索了谷歌和任何地方,但我找不到 Kali Linux 的宏。如果我做 :

它可以是任何类型的 Linux,例如 Ubuntu 和类似的 Linux。Kali Linux 的宏是什么?

0 投票
2 回答
1313 浏览

c - 警告“格式不是字符串文字且没有格式参数”未出现在最新的 gcc 版本上

在我的代码中,我使用以下行打印一个char readbuffer[1];数组(大小为 1 的 char 数组):

7.3.1+20180406-1这在我的电脑(Arch Linux,gcc 版本)上编译和工作没有问题。但是,当我将包含此代码的作业提交给我的导师时,他实际上在编译我的代码时收到了编译器警告:

他正在使用 16.04 LTS 版本中的 gcc/clang 版本。我们都使用了相同的编译器标志。

为什么是这样?这在新gcc版本中突然不再是问题了吗?如果是这样,为什么不呢?

请注意:我不想知道如何解决此问题,而只想知道为什么警告与 gcc 版本不一致。

0 投票
2 回答
50 浏览

android - liunx 发行版和智能手机有什么问题?

我想知道为什么似乎没有人在他们的智能手机上使用像 debian 或 archlinux 这样的替代发行版。有设计为触摸界面的 gnome 桌面,其中包含足够的应用程序,可用于智能手机上的日常业务。

我读到这与驱动程序有关。但我也读到内核上游存储库中提供了任何 android 驱动程序,并且 android 基本上就像任何其他 linux 发行版一样。

那么,为什么在可以完全访问所有外围设备(如相机和传感器等)的 Android 智能手机上运行替代发行版如此困难或不可能呢?

0 投票
1 回答
44 浏览

linux-kernel - 有效地将操作系统与汽车进行比较 [隐喻]

我试图将操作系统与汽车进行比较,所以从内核开始
我可以将它与汽车的引擎联系起来。

如果是这样,例如,

这种意识形态只是为了理解,明显简化了核心概念

我知道内核是操作系统中的最低级别,所以我不确定它的引擎机制(燃油喷射、火花点火,因为这是你能得到的最低级别)还是引擎本身

我想知道这是否存在缺陷(考虑到简化因素)并添加一些细节以更清楚地描绘这一点。

0 投票
2 回答
745 浏览

python - 嵌入式安装中未设置 Python 路径

我试图让 python3 在我的 EspressoBin 单板计算机(aarch64)上运行。我使用 Marvell 的openembedded发行版构建了一个 linux 发行版,并包含python3.

问题是没有设置python的搜索路径/环境变量。

如果我尝试启动 python3,我得到:

但是,如果我这样做:

然后一切都神奇地起作用。

所以问题是......这些东西通常在哪里/如何设置?我尝试与 Ubuntu 进行比较,但由于某种原因,这些环境变量甚至根本不存在!我检查了sys.path上的文档,它说它sys.path是从 PYTHONPATH 填充的,“加上依赖于安装的默认值”。所以我猜 Ubuntu 的“依赖于安装的默认值”预先填充了正确的路径?

我当前的解决方案是将这两个环境变量添加到/etc/environment, 以及/etc/profile(用于 ssh 连接),但这似乎是一个 hacky 解决方法,我想把它做对。

0 投票
1 回答
30 浏览

python - 与其他发行版相比,是否有一个 Linux 发行版对更新的 Python 模块有更好的支持?

在可能的情况下,我更喜欢使用 Linux 发行版提供的 Python 环境和模块。

是否有任何已知的发行版,或者甚至声称他们的优先事项之一是测试 Python 的较新版本和流行的 Python 模块并将其集成到他们的包系统中?

这与什么 linux 发行版更适合 Python Web 开发有关?,但我对 Web 开发不感兴趣,而喜欢 Pandas/numpy、IMAPclient、lxml、xlrd 等模块。

0 投票
1 回答
827 浏览

linux-distro - 为什么“Windows 效果”设置在 Deepin 15.11 中不起作用?

我已经在我的桌面(双核,2GB RAM)中安装了 Deepin,它安装成功,但桌面不是这样。Deepin setting pannel透明度不起作用,Windows effects设置也不起作用。我已经看到更新并将其更新到最新版本的 Deepin 没有任何效果,所以请帮我解决这个问题。