【活动】OpenEuler LFS 寒假实践

使用OpenEuler Linux操作系统,进行Linux From Scratch的操作实践,编译一个属于自己的Linux内核。在实践过程中更好的学习Linux。

OpenEuler LFS Course Gitee仓库

image
一些下载链接

image
虚拟机配置教程

在设置完root用户的密码后,会有普通用户创建选项


如果要创建普通用户,一定要勾选管理员选项

需要自己安装的包
image

一个自动下载包的脚本, 但不包括补丁,下载包的时候要注意版本,此处为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

:smiley:

对path的修正

path="/mnt/lfs/sources/"

环境变量的配置

环境变量和挂载是重启系统之后比较容易出问题的地方

  • 环境变量的解决方案参考上面的回复
  • 挂载的解决方案是重新挂载,否则会找不到目录,但能看到分区,如果是照着仓库里的教程做应该是/dev/sdb

8.18节编译binutils

如果你的root都不能正确expect的话,就应该安装一个了

8.26节 编译gcc遇到的两个小问题

image
这两行命令都不能正确执行。

B站他人教程1
B站他人教程2

年前误删了一个目录,于是面临着第n次从头来过,最近折腾出一个自动化的脚本,仅供参考,有待完善:GitHub - Lj1ang/LFS_auto_scripts: scripts that automate some of building process in LFS 10.1 systemed

hhhh加油,我之前也是重来了几次的

https://www.linuxfromscratch.org/alfs/download.html

官方自动化脚本

此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分区表