从LFS官方文档构建完整Linux系统

该文章不是新手教程!!!

  • Parallels Desktop (为防止找不到网卡 NIC Type设成Intel(R) PRO/1000 MT)。
  • kali-linux-2.0-amd64(i386).iso (该liveCD编译工具算完整,liveCD启动另外安装bison、gawk,直接apt-get install 安装即可)。
  • 其它虚拟机硬件按个人需求设置。
  • 宿主系统所需工具检测

version-check.sh

 1 #!/bin/bash
 2 # Simple script to list version numbers of critical development tools
 3
 4 export LC_ALL=C
 5 bash --version | head -n1 | cut -d" " -f2-4
 6 echo "/bin/sh -> `readlink -f /bin/sh`"
 7 echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
 8 bison --version | head -n1
 9 if [ -e /usr/bin/yacc ];
10   then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
11   else echo "yacc not found"; fi
12
13 bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
14 echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
15 diff --version | head -n1
16 find --version | head -n1
17 gawk --version | head -n1
18 if [ -e /usr/bin/awk ];
19   then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
20   else echo "awk not found"; fi
21
22 gcc --version | head -n1
23 ldd --version | head -n1 | cut -d" " -f2-  # glibc version
24 grep --version | head -n1
25 gzip --version | head -n1
26 cat /proc/version
27 m4 --version | head -n1
28 make --version | head -n1
29 patch --version | head -n1
30 echo Perl `perl -V:version`
31 sed --version | head -n1
32 tar --version | head -n1
33 echo "Texinfo: `makeinfo --version | head -n1`"
34 xz --version | head -n1
35
36 echo ‘main(){}‘ > dummy.c && gcc -o dummy dummy.c
37 if [ -x dummy ]
38   then echo "gcc compilation OK";
39   else echo "gcc compilation failed"; fi
40 rm -f dummy.c dummy
41
42 echo ‘main(){}‘ > dummy.c && g++ -o dummy dummy.c
43 if [ -x dummy ]
44  then echo "g++ compilation OK";
45  else echo "g++ compilation failed"; fi
46 rm -f dummy.c dummy
  • 构建方法按官方文档一步步来,只是复制粘贴而已。下面说些要注意的地方。(构建完tools,进入chroot后)

  编译安装GCC时,可以不要check,但一定执行

1 install -v -dm755 /usr/lib/bfd-plugins
2
3 ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/5.2.0/liblto_plugin.so /usr/lib/bfd-plugins/

  否则后续编译软件的时候出现找不到类库和头文件的问题。如果不放心,每次安装完一个软件ldconfig一下。

  • 安装完软件后(编译内核和安装GRUB前)可以不按照文档的方法配置相关文件。安装下面方法配置基本系统所需的文件,可满足系统的基本运行,和连接网络。
  1 时间设置(Configuring the setclock Script)
  2 cat > /etc/sysconfig/clock << "EOF"
  3 # Begin /etc/sysconfig/clock
  4 UTC=1
  5 # End /etc/sysconfig/clock
  6 EOF
  7
  8 bash /lib/udev/init-net-rules.sh
  9
 10 cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
 11 # Persistent symlinks for webcam and tuner
 12 KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81",  13     SYMLINK+="webcam"
 14 KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e",  15     SYMLINK+="tvtuner"
 16 EOF
 17
 18 cat > /etc/inittab << "EOF"
 19 # Begin /etc/inittab
 20 id:3:initdefault:
 21 si::sysinit:/etc/rc.d/init.d/rc S
 22 l0:0:wait:/etc/rc.d/init.d/rc 0
 23 l1:S1:wait:/etc/rc.d/init.d/rc 1
 24 l2:2:wait:/etc/rc.d/init.d/rc 2
 25 l3:3:wait:/etc/rc.d/init.d/rc 3
 26 l4:4:wait:/etc/rc.d/init.d/rc 4
 27 l5:5:wait:/etc/rc.d/init.d/rc 5
 28 l6:6:wait:/etc/rc.d/init.d/rc 6
 29 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
 30 su:S016:once:/sbin/sulogin
 31 1:2345:respawn:/sbin/agetty --noclear tty1 9600
 32 2:2345:respawn:/sbin/agetty tty2 9600
 33 3:2345:respawn:/sbin/agetty tty3 9600
 34 4:2345:respawn:/sbin/agetty tty4 9600
 35 5:2345:respawn:/sbin/agetty tty5 9600
 36 6:2345:respawn:/sbin/agetty tty6 9600
 37 # End /etc/inittab
 38 EOF
 39
 40 cat > /etc/sysconfig/console << "EOF"
 41 # Begin /etc/sysconfig/console
 42 FONT="lat2a-16 -m 8859-2"
 43 # End /etc/sysconfig/console
 44 EOF
 45
 46 cat > /etc/shells << "EOF"
 47 # Begin /etc/shells
 48 /bin/sh
 49 /bin/bash
 50 # End /etc/shells
 51 EOF
 52
 53 设置bash下的键盘功能键设置
 54 cat > /etc/inputrc << "EOF"
 55 set horizontal-scroll-mode Off
 56 set meta-flag On
 57 set input-meta On
 58 set convert-meta Off
 59 set output-meta On
 60 set bell-style none
 61 "\eOd": backward-word
 62 "\eOc": forward-word
 63 "\e[1~": beginning-of-line
 64 "\e[4~": end-of-line
 65 "\e[5~": beginning-of-history
 66 "\e[6~": end-of-history
 67 "\e[3~": delete-char
 68 "\e[2~": quoted-insert
 69 "\eOH": beginning-of-line
 70 "\eOF": end-of-line
 71 "\e[H": beginning-of-line
 72 "\e[F": end-of-line
 73 EOF
 74
 75 设置Bash Shell启动文件(The Bash Shell Startup Files)
 76 cat > /etc/profile << "EOF"
 77 # Begin /etc/profile
 78 export LANG=en_US.UTF-8
 79 export LANGUAGE=en_US:en
 80 export LC_NUMERIC=en_US.UTF-8
 81 export LC_TIME=en_US.UTF-8
 82 export LC_MONETARY=en_US.UTF-8
 83 export LC_PAPER=en_US.UTF-8
 84 export LC_IDENTIFICATION=en_US.UTF-8
 85 export LC_NAME=en_US.UTF-8
 86 export LC_ADDRESS=en_US.UTF-8
 87 export LC_TELEPHONE=en_US.UTF-8
 88 export LC_MEASUREMENT=en_US.UTF-8
 89 export INPUTRC=/etc/inputrc
 90 alias ls="ls --color"
 91 export PS1=‘\u:\w\$ ‘
 92 # End /etc/profile
 93 EOF
 94
 95 设置本地网络名
 96 echo "HOSTNAME=SCoreLFS" > /etc/sysconfig/network
 97
 98 设置hosts文件
 99 cat > /etc/hosts << "EOF"
100 # Begin /etc/hosts (no network card version)
101 127.0.0.1 SCoreLFS localhost
102 # End /etc/hosts (no network card version)
103 EOF
104
105 设置网络的静态地址
106 cd /etc/sysconfig/?cat > ifconfig.eth0 << "EOF"
107 ONBOOT=yes?
108 IFACE=eth0
109 SERVICE=ipv4-static
110 IP=10.211.55.49
111 GATEWAY=10.211.55.1
112 BROADCAST=10.211.55.255?EOF
113
114 设置DNS
115 cat > /etc/resolv.conf << "EOF"
116 # Begin /etc/resolv.conf
117 nameserver 10.211.55.1
118 nameserver 8.8.8.8
119 # End /etc/resolv.conf
120 EOF
121
122 建立fstab文件
123 cat > /etc/fstab << "EOF"
124 # Begin /etc/fstab
125 # file system  mount-point  type   options         dump  fsck
126 #                                                        order
127 /dev/sda1       /            ext4  defaults        1     1
128 /dev/sda2       swap         swap   pri=1           0     0
129 proc              /proc        proc   defaults        0     0
130 sysfs             /sys         sysfs  defaults        0     0
131 devpts          /dev/pts     devpts gid=4,mode=620  0     0
132 #shm              /dev/shm     tmpfs  defaults        0     0
133 # End /etc/fstab
134 EOF
135
136 install -v -m755 -d /etc/modprobe.d
137
138 cat > /etc/modprobe.d/usb.conf << "EOF" # Begin /etc/modprobe.d/usb.conf
139 install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
140 install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
141 # End /etc/modprobe.d/usb.conf
142 EOF
  • logout到宿主系统前记得passwd设置一下root密码。

为了后续安装软件和使用方便,建议根据blfs文档安装openssh、openssl和wget。至于ssh的配置可以安装下面方法,可以解决root登录和权限问题

1 vim /etc/ssh/sshd_config 添加下面代码
2
3 PasswordAuthentication yes
4 PermitRootLogin yes
时间: 2024-10-11 12:51:29

从LFS官方文档构建完整Linux系统的相关文章

Android Studio官方文档之构建和运行你的APP

Android Studio官方文档之构建和运行你的APP 本文由MTJH翻译,jkYishon审校. 前言 默认情况下,Android Studio设置新的项目并且部署到模拟器或者真机设备上,只需要点击几下.使用即时运行,你并不需要构建一个新的APK即可将改变后的方法和现有的应用资源应用到一个正在运行的应用程序中,所以代码的改变是即时可见的. 点击Run来构建并运行你的APP.Android Studio通过Gradle构建你的App,选择一个部署的设备(模拟器或连接的设备),然后把你的APP

一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档

接触Power BI的时间也只有几个月,虽然花的时间不多,但通过各种渠道了解收集,谈不上精通,但对一些重要概念和细节还是有所了解.在整理官方文档的过程中,也熟悉和了解了很多概念.所以从前到后把微软官方的入门稳定粗略的介绍了一下.本篇文章也是这个小系列的终结篇.我将所有的章节整理为了一个完整的PDF文档分享给大家.其实了解之后发现文档还是有些简单的,过程其实没介绍到.因为微软也提供了支持文档,但限于篇幅太大,我就不打算按照原文一个个复制给大家了.入门文档是让大家有个粗略的了解.技术文档就是细节了,

【苦读官方文档】2.Android应用程序基本原理概述

官方文档原文地址 应用程序原理 Android应用程序是通过Java编程语言来写.Android软件开发工具把你的代码和其它数据.资源文件一起编译.打包成一个APK文件,这个文档以.apk为后缀,保存了一个Android应用程序全部的内容.Android设备通过它来安装相应的应用. 一旦安装到设备上.每一个Android应用程序就执行在各自独立的安全沙盒中: Android系统是一个多用户的Linux系统.每一个应用都是一个用户. Android系统默认会给每一个应用分配一个唯一的用户ID(这个

hbase官方文档(转)

Apache HBase™ 参考指南  HBase 官方文档中文版 Copyright © 2012 Apache Software Foundation.保留所有权利. Apache Hadoop, Hadoop, MapReduce, HDFS, Zookeeper, HBase 及 HBase项目 logo 是Apache Software Foundation的商标. Revision History Revision 0.95-SNAPSHOT 2012-12-03T13:38 中文版

Spring Boot 官方文档入门及使用

个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念,请先移步上一篇文章 Spring Boot 学习.本篇原本是为了深入了解下Spring Boot而出现的. 另外,Spring Boot 仍然是基于Spring的,建议在赶完工之后深入学习下Spring,有兴趣可以看看我的 Spring 4 官方文档学习(十一)Web MVC 框架 .欢迎探讨,笑~

OpenCV官方文档学习记录(4)

基本图形的绘制,官方文档给了一个实例,绘制下面两幅图形,分别使用了圆,椭圆,矩形,多边形,线等构造. 主要是使我们了解到如何构建这些形状,以及如何使用两种数据类型Point和Scalar分别定义点和颜色: 先放图: 完整代码如下: 1 #include <opencv2\opencv.hpp> 2 #include <iostream> 3 #include <string> 4 5 #pragma comment( linker, "/subsystem:\

Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC

在前面的文档中讲解了Spring MVC的特殊beans,以及DispatcherServlet使用的默认实现.在本部分,你会学习两种额外的方式来配置Spring MVC.分别是:MVC Java config 和  MVC XML namespace. 原文: Section 22.2.1, "Special Bean Types In the WebApplicationContext" and Section 22.2.2, "Default DispatcherSer

【Docker官方文档】理解Docker

本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行应用的开放平台,Docker设计用来更快的交付你的应用程序. Docker可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.Docker可以帮助你更块地打包你代码.测试以及部署,并且也可以减少从编写代码到部署运行代码的周期. Docker将一个轻量级的容器虚拟化平台和

HBase 官方文档0.90.4

HBase 官方文档0.90.4 Copyright ? 2010 Apache Software Foundation, 盛大游戏-数据仓库团队-颜开(译) Revision History Revision 0.90.4 配置,数据模型使用入门 Abstract 这是 Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在 Apache Hadoop和 Apache ZooKeeper上的列数据库. 我(译者)熟悉Hbase的源代码,从事Hbase