设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
刚刚用来编译lfs的脚本
1
2
/ 2 页
下一页
返回列表
查看:
1987
|
回复:
10
刚刚用来编译lfs的脚本
[复制链接]
flaboy
flaboy
当前离线
积分
552
IP卡
狗仔卡
发表于 2002-12-29 23:21:32
|
显示全部楼层
|
阅读模式
我用来以后自动编译lfs的脚本
这是刚刚用来编译static部分的,改一改就能用来编译lfs系统了
看来应该把trem兄的解压缩脚本加进去,我这个弱弱的....还弄不好容易出错...
总体思路就是这样子的,本人技术太滥,写的东西也乱乱的..
#! /bin/bash
CHROOT=0
umask 022
source config
unset LC_ALL
unset CXXFLAGS
unset LANG
unset CFLAGS
export CC='gcc -s'
export LDFLAGS=-static
export CPPFLAGS="-Dre_max_failures=re_max_failures2 -D_GNU_SOURCE"
if (CHROOT=0)
then
WORK_PATH=${TATGET_PATH}${BUILD_PATH}
else
WORK_PATH=${BUILD_PATH}
fi
mkdir -p $WORK_PATH
cd $WORK_PATH
file_ready()
{
FILE_NOW=$*
if [ -e $FILE_NOW ]
then
if [ -d $FILE_NOW ]
then
cp -r $FILE_NOW ${TATGET_PATH}${BUILD_PATH}/ &&
NOW_PATH=${WORK_PATH}/$(basename $FILE_NOW)
else
case ${FILE_NOW##*.} in
tgz)
tar -xzvf $FILE_NOW &&
PATH_TMP=${FILE_NOW%*.tgz} &&
NOW_PATH=${WORK_PATH}/${PATH_TMP##*/}
;;
gz)
tar -xzvf $FILE_NOW &&
PATH_TMP=${FILE_NOW%*.tar.gz} &&
NOW_PATH=${WORK_PATH}/${PATH_TMP##*/}
;;
bz2)
tar -xjvf $FILE_NOW &&
PATH_TMP=${FILE_NOW%*.tar.bz2} &&
NOW_PATH=${WORK_PATH}/${PATH_TMP##*/}
;;
*)
echo "Unknow file type:${FILE_NOW}!!"
echo "Please check again!"
esac
fi
else
echo "Can't find ${FILE_NOW}!!"
fi
}
begin_build()
{
file_ready $*
cd $NOW_PATH
}
end_build()
{
cd $WORK_PATH
}
#*************************************************************************************
build_Bash ()
{
begin_build $PATH_Bash &&
./configure --enable-static-link --prefix=${TATGET_PATH}/ --with-curses &&
make &&
make install &&
end_build
}
build_Binutils ()
{
begin_build $PATH_Binutils &&
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make LDFLAGS=-all-static &&
make install &&
end_build
}
build_Bzip2 ()
{
begin_build $PATH_Bzip2 &&
make CC="gcc -static -s" &&
make PREFIX=${TATGET_PATH}/ install
end_build
}
build_Diffutils ()
{
begin_build $PATH_Diffutils &&
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make &&
make install &&
end_build
}
build_Fileutils ()
{
begin_build $PATH_Fileutils &&
./configure --disable-nls --prefix=${TATGET_PATH}/ &&
make &&
make install &&
end_build
}
build_Findutils ()
{
begin_build $PATH_Findutils &&
./configure --prefix=${TATGET_PATH}/ &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_Gawk ()
{
begin_build $PATH_Gawk &&
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_GCC ()
{
begin_build $PATH_GCC &&
./configure --prefix=/bin --disable-nls --disable-shared &&
echo "#define HAVE_GAS_HIDDEN 1" >> gcc/auto-host.h &&
make BOOT_LDFLAGS=-static bootstrap &&
make prefix=${TATGET_PATH}/ install
end_build
}
build_Grep ()
{
echo $PWD
begin_build $PATH_Grep &&
./configure --prefix=${TATGET_PATH}/ --disable-nls --disable-perl-regexp &&
make &&
make install &&
end_build
}
build_Gzip ()
{
begin_build $PATH_Gzip &&
./configure --prefix=${TATGET_PATH}/ &&
make LDFLAGS=-static &&
make install &&l
end_build
}
build_Make ()
{
begin_build $PATH_Make
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_Patch ()
{
begin_build $PATH_Patch &&
./configure --prefix=${TATGET_PATH}/ &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_Sed ()
{
begin_build $PATH_Sed &&
./configure --prefix=${TATGET_PATH}/ &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_Sh_utils ()
{
begin_build $PATH_Sh_utils &&
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_Tar ()
{
begin_build $PATH_Tar &&
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make LDFLAGS=-static &&
make install &&
end_build
}
build_Texinfo ()
{
begin_build $PATH_Texinfo &&
./configure --prefix=${TATGET_PATH}/ --disable-nls &&
make &&
make install &&
end_build
}
build_Textutils ()
{
begin_build $PATH_Textutils &&
./configure --enable-static-link --prefix=${TATGET_PATH}/ --with-curses &&
make &&
make install &&
end_build
}
build_Util_linux ()
{
begin_build $PATH_Util_linux &&
./configure --enable-static-link --prefix=${TATGET_PATH}/&&
make HAVE_SLN=yes &&
make HAVE_SLN=yes install
end_build
}
build_Sysvinit()
{
begin_build $PATH_Sysvinit &&
cp src/init.c{,.backup} &&
sed 's/Sending processes/Sending processes started by init/g' src/init.c.backup > src/init.c
make -C src &&
make -C src install
end_build
}
build_Glibc()
{
begin_build $PATH_Glibc &&
end_build
}
#*******************************************************************************
build_Bash &&
build_Binutils &&
build_Bzip2 &&
build_Diffutils &&
build_Fileutils &&
build_Findutils &&
build_Gawk &&
build_GCC &&
build_Grep &&
build_Gzip &&
build_Make &&
build_Patch &&
build_Sed &&
build_Sh_utils &&
build_Tar &&
build_Texinfo &&
build_Textutils &&
#build_Util_linux &&
#build_Sysvinit
#build_Glibc
echo "ALL DONE!!"
复制代码
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
flaboy
flaboy
当前离线
积分
552
IP卡
狗仔卡
楼主
|
发表于 2002-12-29 23:23:20
|
显示全部楼层
config
file: config
TATGET_PATH="/mnt/hda6"
#*********************************************************************### File Path set### IT's can be a tar,tgz,tar.gz,tar.bz2 file or a Dircty#
#PATH_Filename="/usr/src/file.tar.gz:/usr/src/file.patch.bz2"
PATH_Autoconf="/root/src/autoconf-2.54.tar.bz2"
PATH_Automake="/root/src/1.7.2.tar.bz2"
PATH_Bash="/root/src/bash-2.05b.tar.gz"
PATH_Bin86="/root/src/bin86-0.15.5.tar.gz"
PATH_Binutils="/root/src/binutils-2.13.tar.bz2"
PATH_Bison="/root/src/bison-1.35.tar.gz"
PATH_Bzip2="/root/src/bzip2-1.0.2.tar.gz"
PATH_Diffutils="/root/src/diffutils-2.8.4.tar.gz"
PATH_E2fsprogs="/root/src/e2fsprogs-1.32.tar.gz"
PATH_Ed="/root/src/ed-0.2.tar.gz"
PATH_File="/root/src/file-3.39.tar.gz"
PATH_Fileutils="/root/src/fileutils-4.1.11.tar.gz"
PATH_Findutils="/root/src/findutils-4.1.7.tar.gz"
PATH_Flex="/root/src/flex-2.5.4a.tar.gz"
PATH_Gawk="/root/src/gawk-3.1.1.tar.gz"
PATH_GCC="/root/src/gcc-3.2.1.tar.bz2"
PATH_Gettext="/root/src/gettext-0.11.5.tar.gz"
PATH_Glibc="/root/src/glibc-2.3.1.tar.gz"
PATH_Glibc_linuxthreads="/root/src/glibc-linuxthreads-2.3.1.tar.gz"
PATH_Grep="/root/src/grep-2.5.tar.gz"
PATH_Groff="/root/src/groff-1.17.2.tar.gz"
PATH_Gzip="/root/src/gzip-1.3.3.tar.gz"
PATH_Kbd="/root/src/kbd-1.08.tar.bz2"
PATH_Less="/root/src/less-378.tar.gz"
PATH_Bootscripts="/root/src/lfs-bootscripts-1.10.tar.bz2"
PATH_Libtool="/root/src/libtool-1.4.3.tar.gz"
PATH_Lilo="/root/src/lilo"
PATH_Linux="/root/src/linux-2.4.20.tar.bz2"
PATH_M4="/root/src/m4-1.4.tar.gz"
PATH_Make="/root/src/make-3.80.tar.gz"
PATH_MAKEDEV="/root/src/MAKEDEV-1.7.bz2"
PATH_Man="/root/src/man-1.5k.tar.gz"
PATH_Man_pages="/root/src/man-pages-1.52.tar.bz2"
PATH_Modutils="/root/src/modutils-2.4.22.tar.bz2"
PATH_Ncurses="/root/src/ncurses-5.3.tar.gz"
PATH_Netkit_base="/root/src/netkit-base-0.17.tar.gz"
PATH_Net_tools="/root/src/net-tools-1.60.tar.bz2"
PATH_Patch="/root/src/patch-2.5.4.tar.gz"
PATH_Perl="/root/src/perl-5.8.0.tar.gz"
PATH_Procinfo="/root/src/procinfo-18.tar.bz2"
PATH_Procps="/root/src/procps-3.0.4.tar.bz2"
PATH_Psmisc="/root/src/psmisc-21.2.tar.bz2"
PATH_Sed="/root/src/sed-4.0.1.tar.gz"
PATH_Shadow="/root/src/shadow-4.0.3.tar.gz"
PATH_Sh_utils="/root/src/sh-utils-2.0.15.tar.gz"
PATH_Sysklogd="/root/src/sysklogd-1.4.1.tar.gz"
PATH_Sysvinit="/root/src/sysvinit-2.84.tar.gz"
PATH_Tar="/root/src/tar-1.13.25.tar.gz"
PATH_Texinfo="/root/src/texinfo-4.3.tar.gz"
PATH_Textutils="/root/src/textutils-2.1.tar.gz"
PATH_Util_linux="/root/src/util-linux-2.11y.tar.bz2"
PATH_Vim="/root/src/vim"
PATH_Zlib="/root/src/zlib-1.1.4.tar.bz2"
##*The work dir********
BUILD_PATH="/usr/src/builder"
复制代码
我想用PATH_Filename="/usr/src/file.tar.gz:/usr/src/file.patch.bz2"
这种形式自动patch文件,思绪还在混乱中....不知怎么下手
都是这几天adsl停了闹心闹的(找借口ing...
)
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2002-12-30 17:23:49
|
显示全部楼层
出错了怎么处理?我也考虑过编写脚本来实现LFS的自动化安装,但是要加上出错处理的部分就比较困难了。在这方面,应该向gentoo好好学习。
回复
支持
反对
使用道具
举报
显身卡
tram
tram
当前离线
积分
7281
IP卡
狗仔卡
发表于 2002-12-30 17:27:47
|
显示全部楼层
我觉得可以做多个脚本,一个main的来调用,main来处理错误,如何?也可以做一个通用的脚本,然后这个脚本来读许多相同格式的profile,每个包一个。
回复
支持
反对
使用道具
举报
显身卡
flaboy
flaboy
当前离线
积分
552
IP卡
狗仔卡
楼主
|
发表于 2002-12-30 17:42:51
|
显示全部楼层
是啊
出错处理是最麻烦的....
用很多的 profile感觉就 核 ebuilde很象了
想的越多就越象gentoo了
现在正在改 处理方式什么的都在改
我想以后再作个前端程序 可以设置断点 可以设置cpu加编译参数生成config文件等等
回复
支持
反对
使用道具
举报
显身卡
fishfeather
fishfeather
当前离线
积分
166
IP卡
狗仔卡
发表于 2004-5-11 16:01:48
|
显示全部楼层
呵呵,我也打算开始尝试一下了
不过SHELL还不熟悉。。
慢慢来
大家共同研究一下……
回复
支持
反对
使用道具
举报
显身卡
home_king
home_king
当前离线
积分
2759
IP卡
狗仔卡
发表于 2004-5-11 18:41:42
|
显示全部楼层
用shell来控制lfs安装进程的意义不大,除了效率低下之外,还须使用许多繁杂的命令组合,倒不如用perl来处理恰当。现在的alfs其中一个版本就是用perl来实现的。兄弟如果想在lfs方面搞自动化,不妨先看看alfs的c源码或者perl版本。
回复
支持
反对
使用道具
举报
显身卡
fishfeather
fishfeather
当前离线
积分
166
IP卡
狗仔卡
发表于 2004-5-22 16:14:06
|
显示全部楼层
home兄,哪里有ALFS FOR 5。0的下载?
我找了半天都没找到。。谁能提供一个?
回复
支持
反对
使用道具
举报
显身卡
home_king
home_king
当前离线
积分
2759
IP卡
狗仔卡
发表于 2004-5-22 16:53:13
|
显示全部楼层
有啊。
www.linuxfromscratch.org
官方网站就有,不过可能要用cvs下载。
回复
支持
反对
使用道具
举报
显身卡
fishfeather
fishfeather
当前离线
积分
166
IP卡
狗仔卡
发表于 2004-5-22 19:53:10
|
显示全部楼层
我到官方网站找了,连接失效
怎么用CVS下载?
可以说清楚一点么。。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
C\C++
红旗 REDFLAG Linux
Solaris 讨论专题
开源软件专题讨论
Mandriva Linux
Linux 程序设计专题讨论
Linux 发行版其他专题
Linux 输入开发与研究
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表