1

全部,

我有一个 shell 脚本,它试图复制和安装 .deb 作为 .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 复制到目标并通过重新启动将其保留在那里。到目前为止,什么都没有。

谢谢

4

1 回答 1

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

我将上面的行附加到我的预置文件中。这一行基本上将一些脚本从 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

然后进行相应的操作。

希望这可以帮助。

于 2015-08-28T17:52:08.133 回答