我想知道是否可以在预置文件中将命令连接在一起。
就像是:
d-i preseed/late_command string yes N | apt-get install package -y
(我意识到这是一个不太好的例子。我只是想知道它是否/如何起作用。)
答案1
我在最后阶段这样做,以下是一些示例,可供您参考:
d-i preseed/late_command string \
cd /target/etc/apt/; \
wget http://repo.example.com/sources_new.list; \
mv sources_new.list sources.list; \
echo 'Acquire::http::Proxy "http://proxy.example.org";' >> apt.conf; \
ls . > temp; \
cat temp | grep -cq string; \
cd /; \
in-target apt-get update; \
in-target apt-get -y upgrade; \
in-target apt-get -y dist-upgrade; \
in-target tasksel install desktop; \
in-target apt-get -y install sudo \
less \
ssh \
icedove \
lynx \
xscreensaver;
因此,目标文件系统默认位于 /target,您可以移动、复制和删除文件、编辑文件,如果您想在目标文件系统中运行命令,可以在命令前使用“in-target”。
更多文档请参阅:http://di.alioth.debian.org/manual/en.amd64/apbs05.html#preseed-hooks
答案2
您可以通过 传递命令/bin/sh
。这允许您使用管道。示例:
in-target /bin/sh -c -- 'blkid /dev/sda1 | xargs -n1 | grep "^UUID=" >/tmp/uuid-sda1.txt'