2019独角兽企业重金招聘Python工程师标准>>>

最近没什么事,再玩一次LFS吧,在这里将具体的步骤记录下来,分享给大家。

先介绍一下我的环境,Ubuntu 13.04 Desktop amd64

虚拟机:VirtualBox Ubuntu 12.04 Server i386

LFS版本:7.3

文档下载地址:http://www.linuxfromscratch.org/lfs/downloads/7.3/

package下载地址:ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-7.3.tar

0.安装Ubuntu 12.04 Server i386

Desktop对于LFS的制作来说没有什么用,如何安装不说啦,网上都有。

注意两点:

安装i386,不是amd64,否则会有一些麻烦。

格式化磁盘时不要使用LVM分区,使用LVM也会造成一些麻烦。

1.配置SSH

安装openssh server,注意不是Java的SSH框架哦。使用它可以很方便的登录到终端上,强烈推荐。

sudo apt-get install openssh-server

客户端可以使用Putty,具体网上都有,不写了。

2. 安装必要软件包

sudo apt-get install build-essential gawk bison texinfo

可能还会缺少m4,patch两个包,如果没有的话也装上。

sudo apt-get install m4 patch

3.检查系统

生成脚本version-check.sh

cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of critical development toolsexport LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";else echo "yacc not found"; fibzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";else echo "awk not found"; figcc --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
echo "Texinfo: `makeinfo --version | head -n1`"
xz --version | head -n1echo 'main(){}' > dummy.c && gcc -o dummy dummy.c
if [ -x dummy ]then echo "gcc compilation OK";else echo "gcc compilation failed"; fi
rm -f dummy.c dummy
EOF

执行:

bash version-check.sh

4.分区

创建了两块虚拟硬盘,/dev/sda用来安装宿主系统,/dev/sdb用来编译安装LFS。

给/dev/sdb分区,我使用cfdisk工具:

sudo apt-get install m4 patch

/dev/sdb1 交换分区

/dev/sdb2 目标系统根目录

如图:

5.格式化

格式化主分区/dev/sdb2为ext3:

sudo mkfs.ext3 /dev/sdb2

格式化交换分区/dev/sdb1:

sudo mkswap /dev/sdb1

6.使用root帐号

受不了sudo了,直接用root吧~

sudo passwd root

根据提示输入root密码。

切换到root:

sudo passwd root

7.挂载新分区

设置环境变量:

export LFS=/mnt/lfs

创建文件夹并挂载:

mkdir -pv $LFS
mount -v -t ext3 /dev/sdb2 $LFS

可以检查一下当前的磁盘挂载情况,应该会多出一个/dev/sdb2

df -h

8.下载源代码包

wget ftp://ftp.lfs-matrix.net/pub/lfs/lfs-packages/lfs-packages-7.3.tar

创建文件夹并设置权限:

mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources

网速快的直接下载之: 网速一般的人也可以用迅雷等工具下载后scp到宿主机器上。

下载完成后,解压,验证md5 hash:

tar -vxf lfs-packages-7.3.tar
mv -v 7.3/* $LFS/sources
pushd $LFS/sources
md5sum -c md5sums
popd

9.继续

创建tools文件夹并做软链接:

mkdir -v $LFS/tools
ln -sv $LFS/tools /

添加lfs用户:

groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs

设置密码:

passwd lfs

获取权限:

chown -v lfs $LFS/tools
chown -v lfs $LFS/sources

切换到lfs用户:

su - lfs

9. 准备环境

创建.bash_profile

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

创建.bashrc

cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

生效:

source ~/.bash_profile

并行编译(可选):

如果双核CPU可以使用'-j 2',四核使用‘-j 4’,其它类似。

export MAKEFLAGS='-j 2'

环境准备完成!

转载于:https://my.oschina.net/u/657037/blog/132759

LFS笔记 00 准备环境相关推荐

  1. Vue快速上手笔记2 - 开发环境的搭建

    Vue快速上手笔记2 - 开发环境的搭建 CSDN:JcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.net/qq_28550263/articl ...

  2. Ionic 学习笔记之-痛彻心扉的环境搭建

    Ionic 学习笔记之-痛彻心扉的环境搭建 最近在学习Ionic 做多平台的应用.跨平台应用.就是用html写的界面.js实现逻辑. 在学ionic之前选了各种跨平台APP开发框架.最后选择了ioni ...

  3. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  4. Spark学习笔记[1]-scala环境安装与基本语法

    Spark学习笔记[1]-scala环境安装与基本语法   正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...

  5. ESP32_WIFI Mesh学习笔记1---Ardino IDE 环境配置

    ESP_WIFI MESH学习笔记1-Ardino IDE 环境配置 文章目录 ESP_WIFI MESH学习笔记1---Ardino IDE 环境配置 前言 一.Arduino IDE配置问题 二. ...

  6. ESP32学习笔记( VSCode + ESP-IDF环境) 3 ——GPIO相关的简单外设驱动

    1.如何在VSCode和ESP-IDF的环境下创建工程 说实话,这是我用ESP-IDF在VSCode环境下最不喜欢的事情,在一顿CSDN和百度之后,很多大佬博主都推荐使用VSCode,通过官方示例来进 ...

  7. Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)

    0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...

  8. Linux-0.00运行环境搭建【转】

    转自:http://blog.csdn.net/rosetta/article/details/8933240 这里的Linux-0.00由Linus Torvalds写的Linux最初版本,只是打印 ...

  9. [云炬python3玩转机器学习笔记] 2-7开发环境搭建笔记

    开发环境搭建笔记

最新文章

  1. php 接收curl json数据格式,curl发送 JSON格式POST数据的接收,以及在yii2框架中的实现原理【精细剖析】...
  2. php 序列化有上限,总结对比php中的多种序列化
  3. 链表之删除单链表倒数第K个节点
  4. 多中心容灾实践:如何实现真正的异地多活?
  5. dj鲜生-通过邮箱发送加密的激活链接
  6. c语言混响,混响也是大学问,c与数字混响的区别-文章-数字音视工程网DAV01.COM...
  7. Android 市场的未来
  8. deepfake ai智能换脸_AI换脸朱茵变杨幂,人工智能时代的“细思恐极”
  9. Spring源码下载---导入到Idea
  10. 计算机中文件无法删除,电脑文件无法删除怎么办?强制删除文件的方法
  11. 动态主题模型(Dynamic Topic Models, DTM)
  12. 有理数python_1034 有理数四则运算 (20分)(Python)
  13. 12.2版本数据库ORA-20001: Statistics Advisor: Invalid task name for the current user
  14. 关于大学生期末复习学习地点和学习时间的调查
  15. VScode 安装中文插件,不生效的解决办法
  16. 删除前几页的页眉同时删掉页眉上的横线
  17. 微信小程序--获取二维码(java后端)
  18. 提示the windows installer service could not be accessed
  19. 汇编语言--逻辑指令
  20. 全光谱护眼灯哪个牌子好?2022最新全光谱灯与led灯区别

热门文章

  1. java中之内存溢出说明
  2. Java 的强引用、弱引用、软引用、虚引用
  3. EventBus,轻松实现跨组件跨线程通信
  4. IDEA 快速创建 SpringBoot 项目
  5. VisualSVN Server 服务器资源目录
  6. 巧用 ExcelFileCleaner 减小excel 文件大小
  7. 匿名黑客称苹果iCloud将成下一个攻击目标
  8. Rust之字符串,元组,数组,切片,打印优化
  9. PPT绘图保存为PDF的三种方式
  10. 调试错误:InternalErro(seeabovefortraceback):BlasGEMMlaunchfailed:a.shape=(300,1),b.shape=(1,10),m=300,n=