我正在对 Ubuntu Server (Saucy) 13.10 进行全自动安装,并且还想包含自定义的附加软件,preseed.cfg 的格式为:
d-i debian-installer/locale string en_US
d-i debian-installer/language string en
d-i debian-installer/country string NL
d-i debian-installer/locale string en_GB.UTF-8
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/modelcode string pc105
d-i keyboard-configuration/layoutcode string us
d-i netcfg/choose_interface select auto
d-i netcfg/dhcp_failed note
d-i netcfg/dhcp_options select Configure network manually
d-i netcfg/get_nameservers string 192.168.1.1
d-i netcfg/get_ipaddress string 192.168.1.42
d-i netcfg/get_netmask string 255.255.255.0
d-i netcfg/get_gateway string 192.168.1.1
d-i netcfg/confirm_static boolean true
d-i netcfg/get_hostname string demo
d-i netcfg/get_domain string www.demo.com
d-i netcfg/wireless_wep string
d-i mirror/country string manual
d-i mirror/http/hostname string archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
d-i mirror/http/mirror select CC.archive.ubuntu.com
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ntp.example.com
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i passwd/user-fullname string demo
d-i passwd/username string demo
d-i passwd/user-password password demo123
d-i passwd/user-password-again password demo123
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false
tasksel tasksel/first multiselect ubuntu-desktop
d-i pkgsel/include string openssh-server build-essential juju ruby virtualbox kvm git openstack
d-i pkgsel/update-policy select none
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i finish-install/reboot_in_progress note
我尝试将自定义软件 juju、openstack 写在 %post 的末尾,通过这种方式:
%post
juju
git
openstack
ruby
但是我出现了解析错误,现在我尝试将这些软件包含在 pkgsel/include 中但再次出现错误,有什么办法可以解决这个问题吗?
答案1
我使用了 late 命令而不是 pkgsel/include,如果这些软件包在 Ubuntu 存储库中列出,pkgsel 将会工作,但是如果所需软件包未包含在 Ubuntu 官方存储库中,pkgsel 将无法工作,因此最好使用 late 命令。
答案2
“%post” 用于运行安装后命令。您应该使用“%packages”而不是“%post”:
%packages
juju
git
openstack
ruby
答案3
您可以在预置配置脚本中使用类似下面的内容。
d-i preseed/late_command string \
in-target apt-get install <packages>