LFS附加版——利用XShell和WinSCP辅助开发

来源:互联网 发布:c语言中玫瑰花数 编辑:程序博客网 时间:2024/06/03 13:07

对于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

其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无论怎么运行,虚拟机界面始终保持在最初的状态。如果用XShell开发的话,每次重新连接都得重启虚拟机,并按照以下重启恢复工作状态的步骤来恢复工作状态

重启恢复工作状态

一、从开始一直到完成Stripping中如果重新启动的恢复步骤:
1.重新启动计算机,并从LiveCD启动(有的虚拟机会默认从LiveCD启动,所以这步可有可无)

相关知识点

在VMWare中因为磁盘已经有了信息了,所以会从磁盘启动,需要在启动虚拟机中的机器时按F2进入虚拟机的虚拟BIOS,然后在BOOT中设置第一启动为CD-ROM,保存退出即可,如图
BIOS

2.LiveCD启动过程同第一次启动选择一样

3.加载分区

export LFS=/mnt/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

4.建立工具链的链接

ln -sv $LFS/tools /

5.创建lfs用户

groupadd lfsuseradd -s /bin/bash -g lfs -m -k /dev/null lfspasswd lfschown -v lfs $LFS/toolschown -v lfs $LFS/sourcessu - lfs

6.建立lfs用户的环境

cat > ~/.bash_profile << "EOF"exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bashEOFcat > ~/.bashrc << "EOF"set +humask 022LFS=/mnt/lfsLC_ALL=POSIXPATH=/tools/bin:/bin:/usr/binexport LFS LC_ALL PATHEOFsource ~/.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/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

基本上就恢复工作状态了

三、Chroot到目标系统的目录之后,建立目标系统的目录结构之前,重新启动的恢复步骤

1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
  
2.加载分区

export LFS=/mnt/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

3.加载必要的文件系统

mount -v --bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -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/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

3.加载必要的文件系统

mount -v --bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -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 /sourcesexport LFS=/sources

基本上就恢复工作状态了

五、为Strip而进入chroot环境结束后,要重新启动的恢复步骤
1.重新启动计算机,并从LiveCD启动(同上面的第一个情况)
  
2.加载分区

export LFS=/mnt/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

3.加载必要的文件系统

mount -v --bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -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/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

3.加载必要的文件系统

mount -v --bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -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 /sourcesexport LFS=/sources

基本上就恢复工作状态了

BLFS+XShell+WinSCP

按教程安装完成LFS后是无法使用XShell的,因为少装了openssl和openssh了,具体流程跟《LFS进阶版(QT)——GUI界面的实现》安装wget命令类似

首先,重新启动计算机,并从LiveCD启动

然后加载分区

export LFS=/mnt/lfsmkdir -pv $LFSmount /dev/hda2 $LFS

加载必要的文件系统

mount -v --bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/sys

进入source目录下载相关安装包

cd /mnt/lfs/sourceswget 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 sharedmake MANDIR=/usr/share/man  make test  make MANDIR=/usr/share/man installcp -v -r certs /etc/ssl install -v -d -m755 /usr/share/doc/openssl-0.9.8gcp -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/sshdchown -v root:sys /var/lib/sshdgroupadd -g 50 sshduseradd -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/scpif test -f /usr/bin/scp-bak  then  rm /usr/bin/scp-bak  fimake install install -v -m755 -d /usr/share/doc/openssh-4.7p1install -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,密码为登陆密码
WinSCP

连接成功页面,左边为本主机文件,右边为虚拟机中文件,可以直接拖拽实现文件传输,十分方便
WinSCP

至此,辅助开发工具XShell和WinSCP也介绍完毕了,希望能帮助到有需要的人~

0 0