使用OpenEuler Linux操作系统,进行Linux From Scratch的操作实践,编译一个属于自己的Linux内核。在实践过程中更好的学习Linux。
一个自动下载包的脚本, 但不包括补丁,下载包的时候要注意版本,此处为lfs-systemed-10.1
#!/usr/bin/python
#注意第一行!!!
from bs4 import BeautifulSoup
import urllib.request
import requests
header = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73"
}
url="https://mirrors.ustc.edu.cn/lfs/lfs-packages/10.1/"
path = "/mnt/lfs/sources"
r = requests.get(url, headers=header)
soup = BeautifulSoup(r.text, "html")
links = soup.find_all("a")
del links[0]
link_list = []
num_of_files=0
for link in links:
link_herf=link.get("herf")
link_text = link.text
link_list.append(link_herf)
filename=link_text.split("/")[-1]
urllib.request.urlretrieve(url+link_text,path+filename)
num_of_files+=1
print("num of files: "+str(num_of_files)+"/92")
记录一个小坑
这种configure打错了会在make install 的时候 因为权限问题报错
这种permission denied是因为目录权限问题,要把权限交给lfs
对path的修正
path="/mnt/lfs/sources/"
环境变量和挂载是重启系统之后比较容易出问题的地方
- 环境变量的解决方案参考上面的回复
- 挂载的解决方案是重新挂载,否则会找不到目录,但能看到分区,如果是照着仓库里的教程做应该是/dev/sdb
8.18节编译binutils
如果你的root都不能正确expect的话,就应该安装一个了
8.26节 编译gcc遇到的两个小问题
这两行命令都不能正确执行。
年前误删了一个目录,于是面临着第n次从头来过,最近折腾出一个自动化的脚本,仅供参考,有待完善:GitHub - Lj1ang/LFS_auto_scripts: scripts that automate some of building process in LFS 10.1 systemed
hhhh加油,我之前也是重来了几次的
此repo能完成第五、六章的toolchains和tools的安装,已将输出内容重定向至.log
文件,可以自行查看安装情况。
已知问题:有部分目录/mnt/lfs下的目录属于root,需要手动chown
8.39节编译inetutils-2.0时遇到的问题
解决方案:
总结一下第八章遇到的问题
- su tester -c " "这一类命令不能执行,或许是openeuler不支持,替代的写法上面已经贴了链接
- 很多包在make check 或者make test的时候都有failed的部分,但是可以正常安装使用,tcl的测试基本都会报错
另:自动化脚本已经包含5678章的内容,但是第八章的测试failed的时候脚本会中断,在切换到tester用户的时候脚本也会中断,不过仍然能自动化完成80%左右的工作
请务必注意最后grub引导部分的配置文件,openeuler使用的是MBR分区表