LFS笔记 00 准备环境
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 准备环境相关推荐
- Vue快速上手笔记2 - 开发环境的搭建
Vue快速上手笔记2 - 开发环境的搭建 CSDN:JcLee95 邮箱:291148484@163.com 专题目录:https://blog.csdn.net/qq_28550263/articl ...
- Ionic 学习笔记之-痛彻心扉的环境搭建
Ionic 学习笔记之-痛彻心扉的环境搭建 最近在学习Ionic 做多平台的应用.跨平台应用.就是用html写的界面.js实现逻辑. 在学ionic之前选了各种跨平台APP开发框架.最后选择了ioni ...
- OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...
- Spark学习笔记[1]-scala环境安装与基本语法
Spark学习笔记[1]-scala环境安装与基本语法 正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...
- ESP32_WIFI Mesh学习笔记1---Ardino IDE 环境配置
ESP_WIFI MESH学习笔记1-Ardino IDE 环境配置 文章目录 ESP_WIFI MESH学习笔记1---Ardino IDE 环境配置 前言 一.Arduino IDE配置问题 二. ...
- ESP32学习笔记( VSCode + ESP-IDF环境) 3 ——GPIO相关的简单外设驱动
1.如何在VSCode和ESP-IDF的环境下创建工程 说实话,这是我用ESP-IDF在VSCode环境下最不喜欢的事情,在一顿CSDN和百度之后,很多大佬博主都推荐使用VSCode,通过官方示例来进 ...
- Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)
0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...
- Linux-0.00运行环境搭建【转】
转自:http://blog.csdn.net/rosetta/article/details/8933240 这里的Linux-0.00由Linus Torvalds写的Linux最初版本,只是打印 ...
- [云炬python3玩转机器学习笔记] 2-7开发环境搭建笔记
开发环境搭建笔记
最新文章
- php 接收curl json数据格式,curl发送 JSON格式POST数据的接收,以及在yii2框架中的实现原理【精细剖析】...
- php 序列化有上限,总结对比php中的多种序列化
- 链表之删除单链表倒数第K个节点
- 多中心容灾实践:如何实现真正的异地多活?
- dj鲜生-通过邮箱发送加密的激活链接
- c语言混响,混响也是大学问,c与数字混响的区别-文章-数字音视工程网DAV01.COM...
- Android 市场的未来
- deepfake ai智能换脸_AI换脸朱茵变杨幂,人工智能时代的“细思恐极”
- Spring源码下载---导入到Idea
- 计算机中文件无法删除,电脑文件无法删除怎么办?强制删除文件的方法
- 动态主题模型(Dynamic Topic Models, DTM)
- 有理数python_1034 有理数四则运算 (20分)(Python)
- 12.2版本数据库ORA-20001: Statistics Advisor: Invalid task name for the current user
- 关于大学生期末复习学习地点和学习时间的调查
- VScode 安装中文插件,不生效的解决办法
- 删除前几页的页眉同时删掉页眉上的横线
- 微信小程序--获取二维码(java后端)
- 提示the windows installer service could not be accessed
- 汇编语言--逻辑指令
- 全光谱护眼灯哪个牌子好?2022最新全光谱灯与led灯区别
热门文章
- java中之内存溢出说明
- Java 的强引用、弱引用、软引用、虚引用
- EventBus,轻松实现跨组件跨线程通信
- IDEA 快速创建 SpringBoot 项目
- VisualSVN Server 服务器资源目录
- 巧用 ExcelFileCleaner 减小excel 文件大小
- 匿名黑客称苹果iCloud将成下一个攻击目标
- Rust之字符串,元组,数组,切片,打印优化
- PPT绘图保存为PDF的三种方式
- 调试错误:InternalErro(seeabovefortraceback):BlasGEMMlaunchfailed:a.shape=(300,1),b.shape=(1,10),m=300,n=