Estou tentando bloquear pacotes GRUB de serem instalados (depois de tê-los removido). O problema é praticamente idêntico ao pacotes Blacklisting da instalação e até envolve o GRUB, que é exatamente o que o selecionado responder ilustrado fazendo.
No entanto, não funciona em 12.04 LTS usando a edição de imagem em nuvem.
Nos meus scripts para fazer tudo isso, primeiro excluo os pacotes envolvidos. Tem um prompt UNinstall chato, mas eu finalmente descobri como alimentá-lo respostas (veja link para a minha pergunta mais antiga) para fazê-lo seguir em frente. Depois que a desinstalação estiver concluída, eu executo comandos para editar o arquivo /etc/apt/apt.conf.d/01autoremove para adicionar a linha da lista negra do grub conforme mostrado na resposta da pergunta acima.
EXECUTING: diff -U999999 /root/etc_apt_apt.conf.d_01autoremove /etc/apt/apt.conf.d/01autoremove
--- /root/etc_apt_apt.conf.d_01autoremove 2012-04-20 10:21:55.000000000 +0000
+++ /etc/apt/apt.conf.d/01autoremove 2012-10-03 16:28:17.000000000 +0000
@@ -1,26 +1,27 @@
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
"^linux-image.*";
"^kfreebsd-image.*";
"^linux-restricted-modules.*";
"^linux-ubuntu-modules-.*";
"^gnumach$";
"^gnumach-image.*";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
+ "grub*";
};
};
FYI, os comandos são prefixados com "EXECUTING" e mostrados dessa maneira como parte do mecanismo do meu script para mostrar o que está fazendo.
O arquivo /root/etc_apt_apt.conf.d_01autoremove neste caso é um backup do original, sendo comparado com o arquivo alterado já em seu lugar. Parece certo para mim. Então eu faço o comando com os mesmos nomes de pacotes sendo negados com o sufixo "-". E ainda assim os instala como novos pacotes:
EXECUTING: apt-get --yes dist-upgrade grub-common- grub-gfxpayload-lists- grub-legacy-ec2- grub-pc- grub-pc-bin- grub2-common-
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
grub-common grub-gfxpayload-lists grub-pc grub-pc-bin grub2-common linux-image-3.2.0-31-virtual
The following packages will be upgraded:
apport apt apt-transport-https apt-utils dbus gnupg gpgv isc-dhcp-client isc-dhcp-common libapt-inst1.4
libapt-pkg4.12 libdbus-1-3 libgc1c2 libxml2 linux-firmware linux-image-virtual linux-virtual multiarch-support
ntfs-3g openssl python-apport python-problem-report resolvconf tzdata ubuntu-keyring
25 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 45.4 MB of archives.
After this operation, 35.1 MB of additional disk space will be used.
Um dos motivos pelos quais não quero instalá-los aqui é a imprevisibilidade dos prompts para os quais meu script precisa fornecer respostas de entrada. E isso não faz sentido para eles serem instalados quando estão na lista negra e não são realmente necessários.
FYI, para referência sobre o motivo pelo qual o GRUB não é necessário, estou usando a opção recomendada 2 em imagens do kernel do AWS EC2 PV-GRUB (AKIs) conforme descrito neste documento na AWS: link
Então, a grande questão: como evitar que esses pacotes sejam instalados?