现在,我正在使用一个使用打包程序运行的 bash 脚本apt-get update && apt-get upgrade -y
。如果可能的话,我想在预播阶段执行此操作。有办法吗?
我以为这个d-i
命令会起作用,但我不希望它执行sudo apt dist-upgrade
。有人能解释一下这些值吗?
# Whether to upgrade packages after debootstrap.
# Allowed values: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select none
有没有办法在打包过程中使用预置进行包升级?
答案1
预播:
d-i preseed/late_command string \
in-target rm -rf /var/lib/apt/lists ; \
in-target apt-get update ; \
in-target apt-get -y upgrade ; \
in-target apt-get -y dist-upgrade ; \
in-target apt-get -y autoremove ; \
in-target apt-get autoclean ; \
in-target apt-get clean
- 这包括一个 dist-upgrade 但很容易被删除。
Ubuntu 具有预先支持的 kickstart,并且 kickstart 可以使用“%post”选项这样做:
%post --interpreter=/bin/bash
#!/bin/bash
apt-get update && apt-get upgrade -y
快速启动可以使用预置:
与 Preseed 集成
虽然 Debian 的 preseed 可以完全自动化整个 Ubuntu 安装,但官方的 Red Hat kickstart 语言却不能。因此,Ubuntu kickstart 包含一个特殊命令 preseed,允许在 Kickstart 文件中使用 preseed 选项。以下是将 kickstart 语法与一些 preseed 语法混合使用的示例。
# Kickstart syntax: Configure authentication auth --useshadow --enablemd5
# Ubuntu Kickstart 语法:使用仅通过 preseed 提供的选项来告知
# Ubuntu 安装程序在安装过程中不会创建非 root 用户
preseed passwd/make-user boolean false
# Ubuntu Kickstart 语法:选中“自动安装任何安全更新”
preseed pkgsel/update-policy select unattended-upgrades