Apakah aman untuk mengganti nama file deb dengan nama standar?

13

Struktur yang ditetapkan dari .debnama file adalah package_version_architecture.deb.
Menurut paragraf ini :

Beberapa paket tidak mengikuti struktur nama package_version_architecture.deb. Paket yang diganti nama dengan dpkg-name akan mengikuti struktur ini. Secara umum ini tidak akan berdampak pada bagaimana paket diinstal oleh dselect / dpkg, tetapi alat instalasi lain mungkin tergantung pada struktur penamaan ini.

Pertanyaan:

Namun, apakah ada situasi nyata ketika mengganti nama .debfile paket sangat tidak disarankan? Apakah praktik biasa memberikan .debnama file khusus untuk perangkat lunak saya?

Contoh:

  • My Program for Linux v1.0.0 (Pro).deb - penamaan kustom
  • my-program_1.0.0-1_amd64.deb - penamaan resmi yang tepat

catatan:

Saya tidak berencana membuat repo, saya hanya hosting .debpaket perangkat lunak saya di situs web saya untuk unduhan langsung.

kefir500
sumber
8
Tolong, untuk cinta semua hal suci jangan gunakan spasi atau tanda kurung dalam nama file Anda. Mereka membuatnya susah untuk menangani mereka dari baris perintah, dan merupakan sumber bug potensial dalam penanganan file.
Austin Hemmelgarn

Jawaban:

26

Selama bertahun-tahun, saya telah mengakumulasikan sejumlah besar .debpaket dengan nama yang tidak standar, dan saya tidak ingat mengalami masalah. Paket "terkenal" dengan nama-nama tidak standar yang mungkin ditemui orang saat ini termasuk google-chrome-stable_current_amd64.debdan steam.deb. (Dalam kedua kasus tersebut, nama yang tetap dan tidak versi memastikan bahwa URL yang stabil dapat digunakan untuk unduhan, dan nama yang stabil untuk instruksi pemasangan.)

Namun saya tidak ingat berlari melintasi spasi dengan nama mereka; yang seharusnya tidak menyebabkan masalah dengan alat, tetapi juga dapat menyebabkan kebingungan bagi pengguna Anda (karena mereka harus mengutip nama file atau keluar dari ruang jika mereka menggunakan alat berbasis shell).

Hal lain yang perlu diperhatikan adalah bahwa menggunakan nama non-standar yang tidak sama dengan nama paket Anda (seperti yang disimpan dalam controlfile) juga dapat menyebabkan kebingungan, misalnya ketika mencoba untuk menghapus paket (karena nama paket tidak akan sama dengan nama yang digunakan untuk menginstalnya).

Sebagai hasil dari semua ini, jika Anda tidak ingin tetap menggunakan nama kanonik saya akan merekomendasikan sesuatu seperti my-program.debatau my-program_amd64.deb(tergantung pada apakah Anda ingin mendukung banyak arsitektur). Anda dapat membuat symlink ke nama file berversi juga jika Anda ingin mengizinkan versi yang lebih lama untuk diunduh.

Stephen Kitt
sumber
"URL yang stabil dapat digunakan untuk mengunduh" - Saya akan terkejut jika Google dan Valve tidak pernah mendengar tentang pengalihan.
OrangeDog
@OrangeDog demikian juga saya. Memiliki unduhan tetap (tanpa arahan ulang) masih membuat hal-hal lebih sederhana (karena ketika mengarahkan, nama file akhir yang digunakan pada disk bervariasi tergantung pada alat yang digunakan untuk mengunduh sayangnya).
Stephen Kitt
10

Nama file distandarisasi terutama untuk kepentingan perangkat lunak pemeliharaan arsip dan cache lokal.

Di masa lalu, sebelum m68karsitektur ditambahkan ke Debian, nama file menggunakan " package _ version .deb", tanpa masalah. Nama arsitektur ditambahkan ke nama file ketika perangkat lunak arsip diperlukan untuk menyimpan i386dan m68kpaket dari paket dan versi yang sama di direktori yang sama. Karena daftar paket selalu berisi nama file yang panjang dan 8.3 , yang dapat diterapkan tanpa melanggar klien.

Dpkg umumnya tidak peduli dengan nama file paket sama sekali. Selama berjalan instalasi, APT menghasilkan direktori dengan semua file paket untuk instalasi run ini, dan setiap file akan memiliki jumlah dalam jangka saat ini ditambahkan di nama file (yaitu jika Anda menginstal paket fooversi 1, dan paket barversi 2, yang footergantung pada , apt akan lulus 0-bar_2_all.debdan 1-foo_1_amd64.debke dpkg).

APT umumnya mengasumsikan bahwa nama itu unik untuk tujuan caching. Jika Anda menggunakan kembali nama, pengguna yang memiliki file ini dalam cache mereka sudah akan mencoba melanjutkan unduhan jika file baru lebih besar, yang akan meninggalkan mereka dengan file yang tidak valid yang kemudian dibuang karena gagal dalam tes checksum. Namun kesalahan ini ditunjukkan kepada pengguna, dan mereka harus memulai kembali proses instalasi.

Simon Richter
sumber