对于LFS,相信很多人都是利用VMware10以上版本所自带的复制黏贴功能来实现开发的,对于VMware10以下的版本,还有一种开发模式,就是远程登录开发模式,即利用XShell辅助开发。XShell可以自行在网上搜索,接下来要用到的WinSCP也自行搜索
LFS+XShell
回到最初的起点,这次教程要结合另一篇文章来看,《LFS详细搭建指南——适合初学者使用》
首先打开计算机的服务,查看“VMware NAT Service”和“VMware DHCP Service”有没有开启,没有开启要开启服务,具体方法可以查看另一篇文章《LFS进阶版(QT)——GUI界面的实现》
然后在root下,也就是刚开始的时候执行以下代码
net-setup
然后选中默认的第一个(eth0),直接回车即可
接着也是选中默认的第一个dhcp,直接回车即可
然后就可以找到虚拟机的ip地址,比如下图
其IP地址为192.168.19.128
然后启动虚拟机里面的sshd服务
/etc/rc.d/init.d/sshd start
因为sshd默认不运行无密码用户登录,所以我们还需要修改下root用户的密码:
passwd
接着我们在XShell中运行以下代码即可运行,其IP为之前所记IP
ssh root@192.168.19.128
如图,连接成功
接下来就可以很方便的复制黏贴代码进行开发了。同时还有一点需要注意,由于使用了XShell,所以虚拟机的快照服务是没办法恢复工作环境的,因为XShell无论怎么运行,虚拟机界面始终保持在最初的状态。如果用XShell开发的话,每次重新连接都得重启虚拟机,并按照以下重启恢复工作状态的步骤来恢复工作状态
重启恢复工作状态
一、从开始一直到完成Stripping中如果重新启动的恢复步骤:
1.重新启动计算机,并从LiveCD启动(有的虚拟机会默认从LiveCD启动,所以这步可有可无)
相关知识点
在VMWare中因为磁盘已经有了信息了,所以会从磁盘启动,需要在启动虚拟机中的机器时按F2进入虚拟机的虚拟BIOS,然后在BOOT中设置第一启动为CD-ROM,保存退出即可,如图
2.LiveCD启动过程同第一次启动选择一样
3.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
4.建立工具链的链接
ln -sv $LFS/tools /
5.创建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
su - lfs
6.建立lfs用户的环境
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF
source ~/.bash_profile
7.检查一下
export
应该输出如下
declare -x HOME=”/home/lfs”
declare -x LC_ALL=”POSIX”
declare -x LFS=”/mnt/lfs”
declare -x OLDPWD
declare -x PATH=”/tools/bin:/bin:/usr/bin”
declare -x PS1=”\u:\w\$ ”
declare -x PWD=”/home/lfs”
declare -x SHLVL=”1”
declare -x TERM=”linux”
8.进入编译目录
cd $LFS/sources
基本上就恢复工作状态了
二、创建两个目标系统所必须的设备文件结束后,重新启动的恢复步骤
1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
基本上就恢复工作状态了
三、Chroot到目标系统的目录之后,建立目标系统的目录结构之前,重新启动的恢复步骤
1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
3.加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
4.Chroot到目标系统下
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h
基本上就恢复工作状态了
四、从Linux-2.6.22.5到为Strip而进入chroot环境结束,重新启动的恢复步骤
1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
3.加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
4.Chroot到目标系统下
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/bin/bash --login +h
5.进入编译目录
cd /sources
export LFS=/sources
基本上就恢复工作状态了
五、为Strip而进入chroot环境结束后,要重新启动的恢复步骤
1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
3.加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
4.Chroot到目标系统下
chroot "$LFS" /tools/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/tools/bin/bash --login
基本上就恢复工作状态了
六、为最后的设置进入chroot环境结束后,一直到开发结束,重新启动的恢复步骤
1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
3.加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
4.Chroot到目标系统下
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
5.进入编译目录
cd /sources
export LFS=/sources
基本上就恢复工作状态了
BLFS+XShell+WinSCP
按教程安装完成LFS后是无法使用XShell的,因为少装了openssl和openssh了,具体流程跟《LFS进阶版(QT)——GUI界面的实现》安装wget命令类似
首先,重新启动计算机,并从LiveCD启动
然后加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/hda2 $LFS
加载必要的文件系统
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt tmpfs shm $LFS/dev/shm
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
进入source目录下载相关安装包
cd /mnt/lfs/sources
wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz
wget http://www.linuxfromscratch.org/patches/blfs/6.3/openssl-0.9.8g-fix_manpages-1.patch
wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.7p1.tar.gz
chroot到目标系统下
chroot "$LFS" /usr/bin/env -i \
HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin \
/bin/bash --login
进入编译目录
cd /sources
export LFS=/sources
安装openssl
tar xvf openssl-0.9.8g.tar.gz
cd openssl-0.9.8g
patch -Np1 -i ../openssl-0.9.8g-fix_manpages-1.patch
./config --openssldir=/etc/ssl --prefix=/usr shared
make MANDIR=/usr/share/man
make test
make MANDIR=/usr/share/man install
cp -v -r certs /etc/ssl
install -v -d -m755 /usr/share/doc/openssl-0.9.8g
cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
/usr/share/doc/openssl-0.9.8g
cd ..
rm -rf openssl-0.9.8g
安装openssh
tar xvf openssh-4.7p1.tar.gz
cd openssh-4.7p1
install -v -m700 -d /var/lib/sshd
chown -v root:sys /var/lib/sshd
groupadd -g 50 sshd
useradd -c 'sshd PrivSep' -d /var/lib/sshd -g sshd \
-s /bin/false -u 50 sshd
sed -i 's@-lcrypto@/usr/lib/libcrypto.a -ldl@' configure
sed -i 's@ -ldes@@' configure
./configure --prefix=/usr --sysconfdir=/etc/ssh --datadir=/usr/share/sshd \
--libexecdir=/usr/lib/openssh --with-md5-passwords \
--with-privsep-path=/var/lib/sshd \
--with-xauth=/usr/bin/xauth
make
if test -f /usr/bin/scp
then
mv /usr/bin/scp /usr/bin/scp-bak
fi
cp scp /usr/bin/scp
make tests 2>&1 | tee check.log
grep "FATAL" check.log
rm /usr/bin/scp
if test -f /usr/bin/scp-bak
then
rm /usr/bin/scp-bak
fi
make install
install -v -m755 -d /usr/share/doc/openssh-4.7p1
install -v -m644 INSTALL LICENCE OVERVIEW README* WARNING.RNG \
/usr/share/doc/openssh-4.7p1
cd ..
rm -rf openssh-4.7p1
重新启动计算机,回到自己搭建的系统中(Hard Drive)
blfs-bootscripts
cd /opt/blfs-bootscripts-20060910
make install-sshd
注意
要是缺少blfs-bootscripts-20060910,可以用wget重新下载解压,执行以下代码
cd /opt
wget http://www.linuxfromscratch.org/blfs/downloads/cvs/blfs-bootscripts-20060910.tar.bz2
tar -jxvf blfs-bootscripts-20060910.tar.bz2
cd blfs-bootscripts-20060910
make install-sshd
最后修改下配置文件
用vi打开文件/etc/ssh/sshd_config
1.找到#port 22,将前面的注释去掉
2.找到#PermitRootLogin yes,同样将前面的注释去掉
然后重启
reboot
接着在XShell中输入代码,IP地址是之前安装LFS自定义的,密码是登陆密码
ssh root@192.168.19.129
即可实现连接
对于WinSCP,打开WinSCP,配置如下,需要填写文件协议,主机名,用户名为root,密码为登陆密码
连接成功页面,左边为本主机文件,右边为虚拟机中文件,可以直接拖拽实现文件传输,十分方便
至此,辅助开发工具XShell和WinSCP也介绍完毕了,希望能帮助到有需要的人~