É seguro renomear o arquivo .deb nomeado pelos padrões?

12

A estrutura estabelecida do nome do arquivo .deb é package_version_architecture.deb .
De acordo com este parágrafo:

Some packages don't follow the name structure package_version_architecture.deb. Packages renamed by dpkg-name will follow this structure. Generally this will have no impact on how packages are installed by dselect/dpkg, but other installation tools might depend on this naming structure.

Pergunta:

No entanto, existem situações reais em que a renomeação do arquivo do pacote .deb seja altamente un recomendada? É uma prática normal fornecer um nome de arquivo .deb personalizado para o meu software?

Exemplo:

  • My Program for Linux v1.0.0 (Pro).deb - a nomenclatura personalizada
  • my-program_1.0.0-1_amd64.deb - a nomenclatura oficial apropriada

Nota:

Estou não planejando criar um repositório, estou hospedando o pacote .deb do meu software no meu site para download direto.

    
por kefir500 17.09.2018 / 13:34

2 respostas

25

Ao longo dos anos, acumulei um grande número de .deb pacotes com nomes não padrão e não me lembro de ter encontrado nenhum problema. Pacotes "famosos" com nomes não padronizados que as pessoas podem encontrar hoje em dia incluem google-chrome-stable_current_amd64.deb e steam.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, eu não lembro de executar qualquer um com espaços em seus nomes; Isso também não deve causar problemas nas ferramentas, mas pode causar confusão para os 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 nome do seu pacote (como armazenado no arquivo control ) também poderia causar confusão, por exemplo ao tentar para 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 ou my-program_amd64.deb (dependendo se você deseja oferecer suporte a várias arquiteturas). Você pode tornar isso um link simbólico para o nome do arquivo versionado também se você quiser permitir o download de versões mais antigas.

    
por 17.09.2018 / 14:41
10

Os nomes dos arquivos são padronizados principalmente para o benefício do software de manutenção de arquivamento e do cache local.

Antigamente, antes de a arquitetura m68k ser adicionada ao Debian, os nomes dos arquivos usavam o pacote _ versão .deb ", sem problemas. O nome da arquitetura foi adicionado ao nome do arquivo quando o software de arquivamento precisava armazenar i386 e m68k packages do mesmo pacote e versão no mesmo diretório. Como a lista de pacotes sempre continha os arquivos long e 8.3 nomes , que poderiam ser implementados sem quebrar clientes.

O dpkg geralmente não se preocupa com os nomes de arquivos dos pacotes. Durante a execução da instalação, o APT gera um diretório com todos os arquivos de pacotes para esta instalação, e cada arquivo terá o número na execução atual prefixado ao nome do arquivo (ou seja, se você instalar o pacote foo versão 1 e pacote bar versão 2, da qual depende foo , o apt passará 0-bar_2_all.deb e 1-foo_1_amd64.deb para 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 tiverem esse arquivo no cache já 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 falhará no teste de soma de verificação. No entanto, este erro é mostrado ao usuário e eles precisam reiniciar a execução da instalação.

    
por 17.09.2018 / 16:44