所有
我有一个shell脚本,它试图复制并安装.deb作为late_command
的一部分。我使用了从这个链接中找到的内容作为指南。
https://gist.github.com/moonwitch/11100762
以下是将命令附加到lubuntu.seed
末尾的echo命令echo "d-i preseed/late_command string \ " >> "$WORK_DIR/preseed/lubuntu.seed"
echo "cp /cdrom/pool/extras/my.deb . ; \ " >> "$WORK_DIR/preseed/lubuntu.seed"
echo "d-i preseed/late_command string in-target dpkg -i /cdrom/pool/extras/my.deb ; " >> "$WORK_DIR/preseed/lubuntu.seed"
真正让我感到震惊的是,无论我做什么,cp命令似乎都不会将文件保留在目标上。还有一些我想要复制和解压缩的东西。
我正在使用Ubuntu 15 32-bit
。真的不关心早期版本“以前工作”的工具。我花了3天的时间搜索每个讨论,每个示例/工具都是用于Ubuntu的旧版本。还没找到一个今天仍然有用的。某种运行,但它们没有完全发挥作用。
我目前的问题是由于我不是一个打包者,但是这个已经完成了,而且我没有那么快地完成任务。
我需要的是一个实际运行的cp语句,它将文件从CD复制到目标并通过重新启动将其保留在那里。到目前为止还没有。
谢谢
答案 0 :(得分:1)
这是我用于后期命令的行:
d-i preseed/late_command string cp /cdrom/somefile /target/system/folder && cp /cdrom/someshellscript.sh /target/system/folder && chroot /target chmod a+x /target/system/folder/someshellscript.sh && chroot /target sh /system/folder/someshellscript.sh
我将上面的行添加到我的preseed文件中。该行基本上将一些脚本从cdrom或iso复制到目标系统中的某个文件夹。在安装过程中,/ target文件夹是“目标”系统根系统(得到它?)。
所以对我来说,我将所需的所有文件从CD或iso复制到某个文件夹,如root或opt,甚至是目标系统中的tmp。然后我将root更改为/ target并执行所有常规linux命令。编写了一个在完成所有复制后执行的shell脚本,以执行我想要的操作。
注意:
在我的shell脚本中,我取消了所有安装程序的环境内容:
unset DEBCONF_REDIR
unset DEBCONF_FRONTEND
unset DEBIAN_HAS_FRONTEND
unset DEBIAN_FRONTEND
然后继续进行。
希望这有帮助。