A solução aqui depende muito da flexibilidade de configuração do aplicativo e dos recursos do gerenciador de pacotes. Lembre-se de que, se os caminhos mudarem, você pode acabar subitamente com um aplicativo que não funciona.
A maioria dos programas permite que você faça substituições por caminhos usando um arquivo de configuração, talvez você possa especificar seu próprio diretório para as imagens aqui. Caso contrário, talvez seu aplicativo procure em um diretório específico por essas imagens antes de examinar seu diretório de imagens padrão, que contém as imagens instaladas por padrão. Se você puder usar um desses métodos suportados pelo aplicativo, você deve.
Se você não puder, eu evitarei tentar parar a substituição do arquivo (por exemplo, com chattr +i
), porque isso provavelmente resultará em seu gerenciador de pacotes saindo com um erro quando tentar atualizar o arquivo. pacote no futuro.
A melhor maneira é cooperar com o seu gerenciador de pacotes para obter o resultado desejado. Por exemplo, você pode tentar um dos seguintes:
- No gerenciador de pacotes, informe para não extrair esses arquivos ao executar a instalação. Em
pacman
, por exemplo, você pode fazer algo assim:
% cat /etc/pacman.conf
[...]
NoExtract = usr/lib/my_image_dir/* usr/lib/my_image_dir_2/*
[...]
- No gerenciador de pacotes, configure um gancho para substituir os arquivos após a instalação / atualização do pacote que fornece esses arquivos. Em
pacman
, por exemplo, você pode fazer isso com um gancho parecido com este:
% cat /usr/share/libalpm/hooks/replace-images.hook
[Trigger]
Type = Package
Operation = Upgrade
Target = the_package_to_target
[Action]
Description = Replacing images
When = PostTransaction
Exec = /usr/bin/script_to_replace_images
Se nenhum deles for possível, talvez você possa executar seu aplicativo com uma sobreposição quando for executado, em uma montagem namespace que é visível apenas para o aplicativo. Isso satisfaria seu gerenciador de pacotes, já que ele nunca vê a sobreposição, e satisfaria suas necessidades, já que você poderia ter apenas suas imagens de substituição na sobreposição.