¿Es seguro cambiar el nombre del archivo .deb nombrado por los estándares?

13

La estructura establecida del .debnombre del archivo es package_version_architecture.deb.
De acuerdo con este párrafo:

Algunos paquetes no siguen la estructura del nombre package_version_architecture.deb. Los paquetes renombrados por dpkg-name seguirán esta estructura. En general, esto no afectará la forma en que dselect / dpkg instala los paquetes, pero otras herramientas de instalación pueden depender de esta estructura de nombres.

Pregunta:

Sin embargo, ¿hay situaciones reales en las .debque no se recomienda cambiar el nombre del archivo del paquete ? ¿Es una práctica normal proporcionar un .debnombre de archivo personalizado para mi software?

Ejemplo:

  • My Program for Linux v1.0.0 (Pro).deb - el nombre personalizado
  • my-program_1.0.0-1_amd64.deb - el nombre oficial apropiado

Nota:

Estoy sin la intención de crear un acuerdo de recompra, sólo estoy aloja el .debpaquete de software de mi en mi sitio web para su descarga directa.

kefir500
fuente
8
Por favor, por amor a todas las cosas santas , no use espacios ni paréntesis en los nombres de sus archivos. Resulta un fastidio manejarlos desde la línea de comandos, y son una fuente potencial de errores en el manejo de archivos.
Austin Hemmelgarn

Respuestas:

26

Con los años, he acumulado una gran cantidad de .debpaquetes con nombres no estándar, y no recuerdo haber tenido ningún problema. Los paquetes "famosos" con nombres no estándar que la gente podría encontrar hoy en día incluyen google-chrome-stable_current_amd64.deby steam.deb. (En ambos casos, el nombre fijo sin versión garantiza que se pueda usar una URL estable para las descargas y un nombre estable para las instrucciones de instalación).

Sin embargo , no recuerdo haber encontrado ninguno con espacios en sus nombres; eso tampoco debería causar problemas con las herramientas, pero podría causar confusión a los usuarios (ya que necesitarán citar el nombre del archivo o escapar de los espacios si usan herramientas basadas en shell).

Otro punto a tener en cuenta es que el uso de un nombre no estándar que no es el mismo que el nombre de su paquete (tal como está almacenado en el controlarchivo) también podría causar confusión, por ejemplo , al intentar eliminar el paquete (ya que el nombre del paquete no será el mismo que el nombre usado para instalarlo).

Como resultado de todo esto, si no desea apegarse al nombre canónico, recomendaría algo como my-program.debo my-program_amd64.deb(dependiendo de si desea admitir múltiples arquitecturas). También puede hacer que sea un enlace simbólico al nombre de archivo versionado si desea permitir que se descarguen versiones anteriores.

Stephen Kitt
fuente
"Se puede usar una URL estable para las descargas" - Me sorprendería que Google y Valve nunca hayan oído hablar de redireccionamientos.
OrangeDog
@OrangeDog también lo haría I. Tener una descarga fija (sin redireccionamiento) todavía hace las cosas más simples (porque al redirigir, el nombre de archivo final utilizado en el disco varía dependiendo de la herramienta utilizada para descargar desafortunadamente).
Stephen Kitt
10

Los nombres de los archivos están estandarizados principalmente para el beneficio del software de mantenimiento de archivos y el caché local.

En los viejos tiempos, antes de que la m68karquitectura fuera agregada a Debian, los nombres de los archivos usaban " package _ version .deb", sin problemas. El nombre de la arquitectura se agregó al nombre del archivo cuando el software de archivo necesitaba almacenar i386y m68kpaquetes del mismo paquete y versión en el mismo directorio. Como la lista de paquetes siempre ha contenido nombres de archivo largos y 8.3 , eso podría implementarse sin romper clientes.

Dpkg generalmente no se preocupa por los nombres de archivo de los paquetes. Durante las ejecuciones de instalación, APT genera un directorio con todos los archivos de paquete para esta ejecución de instalación, y cada archivo tendrá el número en la ejecución actual antepuesto al nombre del archivo (es decir, si instala la fooversión 1 del paquete y la barversión 2 del paquete , que foodepende de , apt pasará 0-bar_2_all.deby 1-foo_1_amd64.debdpkg).

APT generalmente asume que los nombres son únicos para propósitos de almacenamiento en caché. Si reutiliza un nombre, los usuarios que ya tienen este archivo en su caché intentarán reanudar la descarga si el nuevo archivo es más grande, lo que los dejará con un archivo no válido que se descartará posteriormente ya que falla la prueba de suma de comprobación. Sin embargo, este error se muestra al usuario y debe reiniciar la ejecución de la instalación.

Simon Richter
fuente