本篇内容介绍了”如何利用hashicorp封隔器把dbcolinux导出为虚拟机和码头工人格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1,封隔器文件,其它准备工作
由于换了osx加parallelsdesk,我们需要改变一下基本的封隔器文件,以下只提到加的部分,文章1、2中有的部分会省略:
建筑商中是这样:
“type":,“parallels-iso" “guest_os_type":,“linux" “hard_drive_interface":,“ide" ...... “parallels_tools_flavor":,“lin" ...... “boot_wait":,“4 s" “shutdown_command":“sudo poweroff" ...... “prlctl": [[“set",,“{{. name}},,,“——startup-view",,“window"]], “boot_command": ( ...... “tce-load  -iw parted.tcz< return>“ “tce-load  -iw grub2.tcz< return>“ “tce-load  -iw 还多-工具- 4. x.tcz“ ...... 整合了这里为compiletc, base-dev包含linux 头 “echo  & # 39; setup  gcccore 包裹……& # 39;& lt; return>“ “tce-load  -iw compiletc.tcz< return>“ “echo  & # 39; setup  gccextra 包裹……& # 39;& lt; return>“ “tce-load  -iw perl5.tcz< return>“ “tce-load  -iw ncurses.tcz< return>“ “tce-load  -iw ncurses-dev.tcz< return>“ ...... )
可见,为了调试,1、2步方便持续集成,我们还把整个gcc放进了bootcommand,还整合进了一些必要库和工具。
再准备文件,与封隔器文件同层的src文件夹中,分成别人了/基地和/中,这样的文件夹安排,基地对应phase1,是原来的编译工具链,64内核所用的源码文件夹+。x tinycorelinux中的src回购/busybox-1.19.0patched.tar.gz busybox-1.19.0-config,而其他人对应phase2所要用到的源码包。有autoscan-devices.copenssl-1.0.1.tar.gz, openssh - 5.8 p1.tar.xz, sudo-1.7.2p6.tar.gz, libzip-0.10.tar.xz, make-3.81.tar.gz,等。
所以,“供应者”部分会是这样:
{“type":“shell",“pause_before":“1 s",“execute_command":,“echo & # 39; & # 39;, |, sudo -S sh -c & # 39; {{, .Vars }}, {{, .Path }} & # 39;“,“inline": [“cp  -R /tmp/tce ~/癩}, {“type":,“shell",“pause_before":“1 s",“execute_command":,“echo & # 39; & # 39;, |, sudo -S sh -c & # 39; {{, .Vars }}, {{, .Path }} & # 39;“,“scripts":【“。/脚本/1. bootstrap.sh"]}, 由于我们稍后的引导中会不再释放microcore.cpio,这个tmp要事先生成。 ...... “sudo  sh -c & # 39; mkdir /mnt/hda1/tmp/& # 39;“, “sudo  sh -c & # 39; chown tc: staff /mnt/hda1/tmp/& # 39;“ ...... {“type":,“file",“source":,“src/base",“destination":,“/mnt/hda1/tmp"}, {“type":,“shell", “pause_before":“1 s" “execute_command":“echo & # 39; & # 39;, |, sudo -S sh -c & # 39; {{, .Vars }}, {{, .Path }} & # 39;“, “scripts": ( “,/脚本/2.1.build64toolchainandkernel.sh" “。/脚本/2.2.build3264rootfsbase.sh" ] }
可见原来的2、3整合了成2了,这里的script3是要新加的,为了方便调试,在封隔器的输出窗口中简便查看起见,包括上面的封隔器尽量将简单的树形xml写在行内,接下来的脚本中,我们也作了一些小的改变和与原来文章中的不同调整:
我们把重要的注释换成了回声“ing…”,脚本中,解压文件的都不加冗长,涉及到编译工具链,内核的地方,都。/configure CC=" gcc - w”,且以上统一都在/dev/null,还有,工具链单独一个文件夹,与基础rootfs所需的/lib/lib64分开,我们还将切换本地gcc/刚建的十字架gcc的方法不再使用出口CROSS_COMPILE,而直接用文件名。
调试语句上,发现前面文章写的,一句letitdebug的无义语句,放在位置放在脚本尾或强行断点处并不能让错误问断下来,重启会产生断点让后面的语句无法运行,但也会丢失当前环境,封隔器调试还是最可用的,除了它每执行一步都问一句有点烦之外,封隔器不支持-debug-on-error。
这些大部分都需要在脚本层更改,我们一件一件来:
2,引导脚本的变动
因为我们要形成纯净的/系统,所以去掉了/下的系统(以下注释掉了部分),整个引导会是这样: