我正在尝试构建一个 Linux 发行版Linux From Scratch(LFS)版本 8.1。我正在建造它ElementaryOS(基于 Ubuntu),我已经在 Mac 上的 VirtualBox 上安装了它。我对 Linux 有一点经验,所以我知道自己在做什么。
一切都很顺利,直到我第 5.4 节在书中。本节指导如何编译和安装二进制实用程序2.29(书中指示我使用 2.29 版本,因为较新版本尚未经过测试Linux 从头开始)。当我读到这本书的这一部分时,似乎一切都不对劲。以下是我所做的:
按照书上的方法,我准备用这个命令来编译它:
./configure --prefix=/tools
--with-sysroot=$LFS
--with-lib-path=/tools/lib
--target=$LFS_TGT
--disable-nls
--disable-werror
完成上述操作后,我用 对其进行了编译make
。由于我使用的是 64 位机器和系统,因此在编译后,我按照指示执行了此操作:
case $(uname -m) in
x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac
然后我执行了make install
,这就是我开始遇到问题的地方。终端给了我这个:
make[1]: Entering directory '/media/nathanael/f2f5c607-926f-4931-ba6e-4e4fd6f08eee/build'
/bin/bash ./mkinstalldirs /tools /tools
mkdir -p -- /tools /tools
mkdir: cannot create directory ‘/tools’: File exists
mkdir: cannot create directory ‘/tools’: File exists
Makefile:2466: recipe for target 'installdirs' failed
make[1]: *** [installdirs] Error 1
make[1]: Leaving directory '/media/nathanael/f2f5c607-926f-4931-ba6e-4e4fd6f08eee/build
Makefile:2224: recipe for target 'install' failed
make: *** [install] Error 2
在到达这一点之前,我遇到了几个问题,幸运的是,我设法解决了它们,但这个问题让我很困惑。有什么建议我应该怎么做吗?
我确实在一处偏离了书上的内容。书中让我创建一个名为 的非特权用户,lfs
我应该在编译时使用它(这样,意外破坏系统的可能性就会很低)。但我在编译时遇到了问题lfs
。我尝试了几种方法让它工作,但发现以管理员身份编译效果最好。希望这不会在长期内造成问题。
任何帮助都将不胜感激。
答案1
看起来构建目录很混乱。
尝试运行make clean
。