构建自己的Linux系统记录(三)
来源:互联网 发布:nginx alias useless 编辑:程序博客网 时间:2024/04/20 09:30
定制GNU/Linux系统-临时系统
由主系统建立临时系统,再通过临时系统建立目标系统,最终使得目标系统能够完全独立运行
工作环境的准备
export SYSDIR=/opt/mylinux
设置环境变量,不带参数的export可以查看现有的环境变量
mkdir -pv ${SYSDIR}/sourcesmount /dev/sda2 ${SYSDIR}
建立目录,挂载到第二块分区上,-p递归创建,无父目录,就先建立父目录,-v 显示结果,可以写成-pv或-p -v,rmdir删除目录也是一样的
mkdir -pv ${SYSDIR}/sourcesnkdir -pv ${SYSDIR}/buildchmod -v a+wt ${SYSDIR}/{sources,build}
建立制作过程源代码和软件包存放的地方,chmod修改sources,build的权限,-v显示结果,
权限分为3部分,u(拥有者),g(拥有组成员),o(其他用户),a表示全部,权限分别为rwx(写,读,执行)
(u)|(g)|(o)
rwx|rwx|rwx
每个用一组二进制表示111,+表示增加某个权限,-表示去掉,t是一种特殊标志,表示该文件只有用户所有者才能删除,可自己查找其他资料
这组二进制数字常被显示成八进制,执行后会显示1777表示,rwxrwxrwx,1表示有特殊标志
mkdir -pv ${SYSDIR}/toolsln -sv ${SYSDIR}/tools /
建立临时系统存放目录,ln是建立软链接,执行以后访问 /tools 和 ${SYSDIR}/tools 是一样的,类似于windows下的mklink,网盘同步的时候很有用。
groupadd mylinuxuseradd -s /bin/bash -g mylinux -m -k /dev/null mylinuxpasswd mylinux
建立制作系统用户,每个用户都必须属于一个组,-s指定该用户使用的shell,一般为bash,-g指定用户属于的组,-m,指定用户目录所在地,一般为/home,-k指定用户复制的配置文件,/dev/null表示不复制,最后是用户名,passwd修改密码
chown -v mylinux ${SYSDIR}/toolschown -v mylinux ${SYSDIR}/sourceschown -v mylinux ${SYSDIR}/build
设置临时系统,软件包,编译用的目录归制作用户所有
su - mylinux
切换到制作用户
可以用pwd显示当前所在的目录,可以用whoami显示自己当前的用户名
建立用户的启动设置脚本
在 ~/ 目录下 ,也就是当前用户目录下
建立 .bash_profile ,文件内容为
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
建立 .bashrc ,文件内容为
set +humask 022SYSDIR=/opt/mylinuxLC_ALL=POSIXPATH=/tools/bin:/bin:/usr/binDOWNLOADDIR=${SYSDIR}/sourcesBUILDDIR=${SYSDIR}/buildexport SYSDIR LC_ALL PATH DOWNLIADDIR BUILDDIR
然后应用这些设置脚本
source ~/.bash_profile
建立用于测试的文件,在${BUILDDIR}下建立test.c
#include <stdio.h>int main(){ printf("OK\n"); return 0;}
这就建立好了基本的工作环境,接下来是编译软件包,开始一步步建立linux操作系统,我用的源代码就是镜像文件里提供的,出现错误也好处理,也可以去网站下载最新的源码。
编译软件保的过程,大致为
-软件包解压 tar xvf <解压的文件> -C <解压到的位置>
x进行解压缩操作,v文件校验输出,f指定解压的文件,-C指定目录
-进入源代码目录 pushd
和 popd
进入目录像栈一样,只要配对使用,就可以回到初始目录
-给源代码应用补丁 patch -Np1 -i <包含路径的补丁文件名>
N代表应用补丁内容,对应的R表示删除补丁,p代表补丁文件中省略的目录数量,i指定文件名
-配置源代码 通过目录中的 configure
-编译源代码通过make
可以指定参数
-检查编译安装过程的正确性,看最后的输出,
-可以通过日志文件记录编译过程的输出, make 2>&1 | tee make.log
tee是从标准输入读取然后输出到标准输出和文件,| 是管道命令将make 产生的输出作为输入到 tee, 2>&1表示同时也要输出到标准输出
-删除代码目录 rm
是删除的命令 指定参数 -r表示可以删除目录指定-f不需要任何提示强制删除
一切准备就绪,终于可以开始编译建立linux了,虽然有很多地方还是不清楚,但这些命令还是以后通过不断的使用来熟悉吧!
- 构建自己的Linux系统记录(三)
- 构建自己的Linux系统记录(一)
- 构建自己的Linux系统记录(二)
- 构建自己的Linux系统记录(四)
- 构建自己的Linux系统记录(五)
- 构建自己的 LINUX 系统(三)
- 构建自己的Linux系统反思(一)
- 构建自己的Linux系统反思(二)
- 从头构建自己的Linux系统 -转
- 构建自己的 LINUX 系统(一)
- 构建自己的 LINUX 系统(二)
- 构建自己的 LINUX 系统(四)
- 从头构建自己的Linux系统
- 记录安装自己Linux系统
- 篇三、编写自己的linux系统调用
- Linux内核构建系统之三
- Linux内核构建系统之三
- 构建自己的博客系统的技术
- 2014网站建设的趋势
- error while loading shared libraries的解決方法
- 神奇的android:clipChildren属性
- Android layout属性大全
- 数据结构与算法17:最小生成树克鲁斯卡尔Kruskal算法
- 构建自己的Linux系统记录(三)
- spoj 10628 Count on a tree
- Apache 多DNS 及其转发配置
- C# 提示Messagebox class类自定义
- 什么是 web 开发
- TCP存活检测机制
- Jetty 学习
- 给大家介绍几个好的软件包下载网站
- 微博@联系人的js效果