A estrutura estabelecida do .deb
nome do arquivo é package_version_architecture.deb
.
De acordo com este parágrafo:
Alguns pacotes não seguem a estrutura de nomes
package_version_architecture.deb
. Pacotes renomeados por dpkg-name seguirão esta estrutura. Geralmente isso não terá impacto em como os pacotes são instalados pelo dselect/dpkg, mas outras ferramentas de instalação podem depender dessa estrutura de nomenclatura.
Pergunta:
No entanto, existem situações reais em que renomear o .deb
arquivo do pacote é altamente não recomendado? É uma prática normal fornecer um .deb
nome de arquivo personalizado para meu software?
Exemplo:
My Program for Linux v1.0.0 (Pro).deb
— a nomenclatura personalizadamy-program_1.0.0-1_amd64.deb
- a nomenclatura oficial adequada
Observação:
Não estou planejando criar um repositório, estou apenas hospedando o .deb
pacote do meu software no meu site para download direto.
Ao longo dos anos, acumulei um grande número de
.deb
pacotes com nomes fora do padrão e não me lembro de ter encontrado nenhum problema. Pacotes “famosos” com nomes fora do padrão que as pessoas podem encontrar hoje em dia incluemgoogle-chrome-stable_current_amd64.deb
esteam.deb
. (Em ambos os casos, o nome fixo e sem versão garante que uma URL estável possa ser usada para downloads e um nome estável para instruções de instalação.)No entanto , não me lembro de encontrar nenhum com espaços em seus nomes; isso também não deve causar problemas com ferramentas, mas pode causar confusão para seus usuários (já que eles precisarão citar o nome do arquivo ou escapar dos espaços se estiverem usando ferramentas baseadas em shell).
Outro ponto a ser observado é que usar um nome não padrão que não seja o mesmo que o nome do seu pacote (conforme armazenado no
control
arquivo) também pode causar confusão, por exemplo , ao tentar remover o pacote (já que o nome do pacote não será o mesmo que o nome usado para instalá-lo).Como resultado de tudo isso, se você não quiser manter o nome canônico, eu recomendaria algo como
my-program.deb
oumy-program_amd64.deb
(dependendo se você deseja oferecer suporte a várias arquiteturas). Você também pode fazer disso um link simbólico para o nome do arquivo versionado se quiser permitir que versões mais antigas sejam baixadas.Os nomes dos arquivos são padronizados principalmente para benefício do software de manutenção do arquivo e do cache local.
Antigamente, antes da
m68k
arquitetura ser adicionada ao Debian, os nomes dos arquivos usavam " package _ version .deb ", sem problemas. O nome da arquitetura foi adicionado ao nome do arquivo quando o software de arquivamento precisava armazenari386
em68k
pacotes do mesmo pacote e versão no mesmo diretório. Como a lista de pacotes sempre continha nomes de arquivos longos e 8.3 , isso poderia ser implementado sem quebrar os clientes.O Dpkg geralmente não se importa com os nomes dos arquivos dos pacotes. Durante a execução da instalação, o APT gera um diretório com todos os arquivos de pacote para esta execução de instalação, e cada arquivo terá o número na execução atual anexado ao nome do arquivo (ou seja, se você instalar o pacote
foo
versão 1 e o pacotebar
versão 2, quefoo
depende , o apt passará0-bar_2_all.deb
e1-foo_1_amd64.deb
para o dpkg).O APT geralmente assume que os nomes são exclusivos para fins de armazenamento em cache. Se você reutilizar um nome, os usuários que já têm esse arquivo em seu cache tentarão retomar o download se o novo arquivo for maior, o que os deixará com um arquivo inválido que será descartado posteriormente, pois falha no teste de soma de verificação. No entanto, este erro é mostrado ao usuário e ele precisa reiniciar a execução da instalação.