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

13

A estrutura estabelecida do .debnome 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. Os pacotes renomeados por dpkg-name seguirão essa estrutura. Geralmente, isso não terá impacto sobre como os pacotes são instalados pelo dselect / dpkg, mas outras ferramentas de instalação podem depender dessa estrutura de nomes.

Questão:

No entanto, existem situações reais quando mudar o nome do .debarquivo do pacote é altamente un recomendado? É uma prática normal fornecer um .debnome de arquivo personalizado para o meu software?

Exemplo:

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

Nota:

Estou não planejando criar um repo, estou apenas hospeda o .debpacote do meu software no meu site para download direto.

kefir500
fonte
8
Por favor, pelo amor de todas as coisas sagradas , não use espaços ou parênteses nos nomes de seus arquivos. Eles fazem mal para lidar com eles a partir da linha de comando e são uma fonte potencial de erros no manuseio de arquivos.
Austin Hemmelgarn

Respostas:

26

Ao longo dos anos, acumulei um grande número de .debpacotes com nomes fora do padrão e não me lembro de ter problemas. Pacotes "famosos" com nomes não padronizados que as pessoas podem encontrar hoje em dia incluem google-chrome-stable_current_amd64.debe steam.deb. (Nos dois 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 espaços com nomes nos espaços; isso também não deve causar problemas nas ferramentas, mas pode causar confusão para os usuários (pois 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 o uso de um nome não padrão que não seja igual ao nome do seu pacote (conforme armazenado no controlarquivo) 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 deseja manter o nome canônico, eu recomendaria algo como my-program.debou my-program_amd64.deb(dependendo se você deseja suportar várias arquiteturas). Você também pode criar um link simbólico para o nome do arquivo com versão se quiser permitir o download de versões mais antigas.

Stephen Kitt
fonte
"um URL estável pode ser usado para downloads" - eu ficaria surpreso se o Google e a Valve nunca tivessem ouvido falar em redirecionamentos.
OrangeDog 18/09/19
@OrangeDog também. Ter um download fixo (sem redirecionamento) ainda torna as coisas mais simples (porque, ao redirecionar, o nome do arquivo final usado no disco varia dependendo da ferramenta usada para baixar, infelizmente).
Stephen Kitt
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 da m68karquitetura ser adicionada ao Debian, os nomes de arquivo usavam " package _ version .deb", sem problemas. O nome da arquitetura foi adicionado ao nome do arquivo quando o software de archive precisava armazenar i386e m68kpacotes 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 interromper 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 do pacote para essa execução, e cada arquivo terá o número da execução atual anexado ao nome do arquivo (ou seja, se você instalar a fooversão 1 do pacote e a barversão 2 do pacote , que foodepende de , o apt passará 0-bar_2_all.debe 1-foo_1_amd64.debpara 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 tiverem esse arquivo em cache já tentarão retomar o download se o novo arquivo for maior, o que deixará um arquivo inválido que será descartado posteriormente por falhar no teste de soma de verificação. No entanto, esse erro é mostrado ao usuário e eles precisam reiniciar a instalação.

Simon Richter
fonte