如何在预安装期间执行 apt-get update 和 upgrade?

如何在预安装期间执行 apt-get update 和 upgrade?

现在,我正在使用一个使用打包程序运行的 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

相关内容