问题标签 [linux-from-scratch]

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 投票
1 回答
456 浏览

linux-from-scratch - LFS:GCC 链接错误

我被困在当前 LFS 书的第 6.20 章。我得到:

而不是想要的:

本章后面的其他测试都成功了。

这是我第二次非常小心地阅读整本书,上次我得到了同样的结果。会不会有什么错误?

作为指导,它只是说“最可能的原因是规格文件调整出了问题。”。这是对 6.10 的引用,其中说“最好目视检查规格文件以验证实际进行了预期的更改”,但没有关于这些预期更改是什么的指导。但是在第二轮中,我确实检查了 /tools/lib/gcc/x86_64-pc-linux-gnu/7.2.0/specs 没有提到“工具”并且提到了 /usr 路径。

0 投票
1 回答
990 浏览

linux - 我如何将 yacc 更改为 bison (LFS)

我目前正在研究 LFS,并且必须将 yacc 更改为 bison。我试图安装野牛,但它没有改变任何东西。这就是我所拥有的:/usr/bin/yacc -> /etc/alternatives/yacc 这就是我需要的/usr/bin/yacc -> /etc/alternatives/bison

0 投票
1 回答
1777 浏览

linux - 消息:ttyname 失败:没有这样的设备

我在做LFS,完成了编译过程,来到了进入cheroot环境的部分,提供的代码。

但我收到了这个错误:mesg: ttyname failed: no such device

我该如何解决这个问题?

0 投票
1 回答
896 浏览

python - Linux 下 Python 3.6 安装到非标准目录失败

我有一个完全绝缘的自举工具链+二进制文件设置(位于 /home/tools 下),它能够构建我扔给它的所有东西。这包括 Python 2.7.14,它使用简单的 --prefix 构建没有问题。唯一的例外是 Python 3.6.4. 我不得不编辑 configure 和 setup.py 脚本来修补一些设置为标准 /usr 目录的硬编码路径(指向 ncursesw 的链接值得注意)。它完全编译并正确构建,除了在 pip 的“make install”安装期间失败。安装脚本在 /tmp 下创建了一个 pip-build-* 目录,故障的根源似乎围绕着它。它在首次创建目录时出现,它是使用正确的权限掩码制作的。但是失败后,我可以看到它只有用户可写(甚至不可读或可执行)。

这是 strace 的部分,它首先创建 pip-build-* 目录。

这是 strace 的结尾,它显示了它出错的位置。

这是“make install”过程的 stdout/stderr 输出。它来自另一次运行,因此目录略有不同。

值得注意的是,它实际上确实将 pip 二进制文件安装到了我的 $prefix/bin 目录,但是安装后续包(如 meson)以类似的方式失败,所以我假设 Python 3.6 / pip 安装没有完全成功。似乎也来自shutil.py。这是介子安装的strace。

我尝试将 /tmp 目录更改为我自己的主目录下的一个,并且发生了相同的错误,并且对 pip-build-* 目录具有奇怪的只写权限。对于调试此问题和正确安装 Python 3.6.4 的任何帮助,我将不胜感激。谢谢!

背景:我已经设置了一个单独的、引导的工具链和二进制文件,它们与工作中的 Linux 服务器上的主机库完全隔离,遵循 Linux From Scratch 书的大部分内容。它运行的是带有内核 2.6.18 的旧 Red Hat / CentOS 5 发行版,由于支持旧版 CAD 软件而无法更新。但是我现在有一个完整的工作环境,其中包含内核 (2.19)、GCC (7.3.0)、binutils (2.30) 等支持的最新 Glibc。我已经得到了正确构建的所有内容,甚至 X 库和 gtk 应用程序,都通过 rpath 直接引用我的库集。

这是我的配置,我需要设置ac_cv_func_utimensat=noac_cv_func_futimens=no因为我系统上的文件系统或内核可能不支持纳秒时间戳。使用这些选项,并修补 configure/setup.py 文件以删除对 /usr/lib/ncursesw 的引用并替换为我的 /home/tools/lib 路径,一切都构建得很好。它是在 pip 的“make install”阶段失败的。

0 投票
2 回答
1058 浏览

python - 从零开始在 Linux 上构建 Python 3.6.4

我正在尝试从 LFS 8.2-systemd 构建 Python 3.6.4,因此我运行了 configure 命令:

其次是make -j。但是,此时 Python 找不到模块“pyexpat”,但该文件存在于/usr/lib/libexpat.so.

在阅读了使用 zlib 支持从源代码构建 Python之后,我创建了一个符号链接:

如果我运行make install,我会收到一个错误:

ModuleNotFoundError:没有名为 pyexpat 的模块

我的 expat lib 版本是2.2.5.

我正在里面进行编译env -i chroot /mnt bash ,我的环境只包含一个有效的PATH变量LX_ALL=POSIX

0 投票
1 回答
166 浏览

linux-from-scratch - 在 LFS 上对 libffi 的测试失败

我正在开发一个 Linux From Scratch 项目,但遇到了一些(潜在的)问题。在第 6.49 章:Libffi-3.2.1 中,我成功执行了“sed”、“configure”和“make”命令,但是当我执行“make check”时,似乎每个测试都失败了:

我一直在密切关注这本书,但也许我在此过程中遗漏了一些东西。我应该担心这个还是应该安装它并继续前进?

如果需要更多信息,请告诉我。

0 投票
0 回答
511 浏览

linux - lfs gcc-7.3.0 -Pass 2 error C 无法创建可执行文件

我目前正在尝试从头开始构建我的第一个 linux(lfs),我需要制作 GCC-7.3.0 - 通过 2 但本书的 ../configure 步骤的输出(第 5.10 章)给我一个错误. 前面的所有步骤都有效,binutils pass 2 似乎有效,gcc 和 g++ 有效。从我的阅读中我了解到我需要删除第一遍 binutils 和 gcc 源,所以我按照逻辑顺序进行了操作。我尝试读取 config.log 文件,但找不到解决方案,有些行似乎很可疑,例如 gcc 无法解析 '-V' 和 'qversion' cli 参数以及 &5 参数。这是生成的 config.log 文件的内容:

可能是什么问题,我能做些什么来解决这个问题?我已经做了很多寻找答案的工作,但我一无所获,所以也许这里有人可以帮助我。谢谢。

0 投票
2 回答
2110 浏览

linux - 在 LFS 第五模块上编译 Glibc-2.28 时出错

当我在运行之前运行 Glibc-2.28 的配置脚本时,我正在关注 LFS 8.3 和第 5 个模块,我得到以下错误


检查 gnumake... 不检查 gmake... gmake 检查 gmake 版本... 3.82,错误检查 gnumsgfmt... 不检查 gmsgfmt... 不检查 msgfmt... msgfmt 检查 msgfmt 版本。 .. 0.18.2,可以检查 makeinfo... makeinfo 检查 makeinfo 的版本... 5.1,可以检查 sed... sed 检查 sed 的版本... 4.2.2,可以检查 gawk... gawk检查 gawk 的版本... 4.0.2,正常检查野牛... 野牛检查野牛的版本... 3.0.4,正常检查 x86_64-lfs-linux-gnu-gcc 是否足以构建 libc...是检查 x86_64-lfs-linux-gnu-nm... x86_64-lfs-linux-gnu-nm 检查 python3... 不检查 python... python 配置:错误:*** 这些关键程序丢失或太旧:制作

*** 检查安装文件以获得所需的版本。

主机是 Centos 7,我默认有 python 2,我什至手动安装了 python 3.4。

有人可以帮我解决它吗?

0 投票
1 回答
273 浏览

setuid - 尝试使用 checkinstall 或 porg 了解 LD_PRELOAD 和 SUID/SGID

我想在我的LFS发行版中使用porg。它类似于checkinstall,它使用.LD_PRELOAD

1 . 如果您阅读自述文件

CheckInstall 目前无法跟踪静态链接程序所做的任何文件系统更改

我认为它指的是诸如mkdir, mv,ln等命令。所以我不应该对此有任何问题。我对吗?

2 . 然后,主要问题:

SUID/SGID 程序注意事项:CheckInstall 无法跟踪其操作,因为 installwatch 使用的 LD_PRELOAD 系统存在一些限制。出于安全原因,这很好,但当安装过程使用 SUID/SGID 二进制文件时,它可能会产生意外结果。

这是什么意思?我不在乎我是否忘记了某些文件。我确实关心是否会有意想不到的结果,或者我是否无法正确安装软件包。

另外,有多少包有这个问题?

0 投票
1 回答
277 浏览

linux - Mesa-18.1.6 'c 编译器无法创建可执行文件'

所以我一直试图在 BLFS 8.3 上编译 Mesa 无济于事,我在试图找出问题所在时遇到了问题。我不太明白为什么在安装 gcc 时它不会编译。

我当前的设置是 LFS 8.3,在 macOS 上使用 Parallels。非常感谢你的帮助!!