Standartlara göre adlandırılmış .deb dosyasını yeniden adlandırmak güvenli mi?


13

.debDosya adının yerleşik yapısıdır package_version_architecture.deb. Bu paragrafa
göre :

Bazı paketler ad yapısını izlemez package_version_architecture.deb. Dpkg-name ile yeniden adlandırılan paketler bu yapıyı izleyecektir. Genellikle bu, dselect / dpkg tarafından paketlerin nasıl kurulacağı üzerinde bir etkisi olmayacaktır, ancak diğer kurulum araçları bu adlandırma yapısına bağlı olabilir.

Soru:

Adlandırma Ancak, herhangi bir gerçek durumlar vardır .debderece olan paket dosyasını un tavsiye? .debYazılımım için özel bir dosya adı sağlamak normal bir uygulama mı?

Misal:

  • My Program for Linux v1.0.0 (Pro).deb - özel adlandırma
  • my-program_1.0.0-1_amd64.deb - uygun resmi adlandırma

Not:

Ben değilim değil sadece ev sahipliği yapıyorum, bir repo oluşturmak planlayan .debdirekt indirme için web sitemde yazılım paketi.


8
Lütfen, kutsal her şeyin aşk için değil , dosya adlarına boşluk veya parantez kullanın. Onlar komut satırından onları işlemek için eşek bir ağrı yapar ve dosya işleme potansiyel bir hata kaynağıdır.
Austin Hemmelgarn

Yanıtlar:


26

Yıllar boyunca .debstandart olmayan isimlerle çok sayıda paket biriktirdim ve herhangi bir sorunla karşılaştığımı hatırlamıyorum. Günümüzde insanların karşılaşabileceği standart olmayan isimlerle “ünlü” paketler arasında google-chrome-stable_current_amd64.debve steam.deb. (Her iki durumda da, sabit, sürümsüz ad indirme işlemleri için sabit bir URL'nin ve yükleme talimatları için sabit bir adın kullanılabilmesini sağlar.)

Ancak yok adlarında boşluk içeren herhangi arasında çalışan hatırlıyorum; bu da araçlarla ilgili sorunlara neden olmamalıdır, ancak kullanıcılarınız için karışıklığa neden olabilir (çünkü dosya adını belirtmeleri veya kabuk tabanlı araçlar kullanıyorlarsa boşluklardan kaçmaları gerekir).

Dikkat edilmesi gereken başka bir nokta da, paket adınızla aynı olmayan standart olmayan bir adın ( controldosyada depolandığı gibi ) kullanılmasının da karışıklığa neden olabileceği, örneğin paketi kaldırmaya çalışırken (paket adı olmayacağından) yüklemek için kullanılan adla aynı).

Tüm bunların bir sonucu olarak, kanonik isme bağlı kalmak istemiyorsanız my-program.debya da my-program_amd64.deb(birden çok mimariyi desteklemek isteyip istemediğinize bağlı olarak) gibi bir şey öneririm . Eski sürümlerin indirilmesine izin vermek istiyorsanız, sürüm dosya adı için bir sembolik bağlantı da yapabilirsiniz.


"indirmeler için sabit bir URL kullanılabilir" - Google ve Valve yönlendirmeleri hiç duymamış olsaydı şaşırırdım.
OrangeDog

Sabit bir indirme (yönlendirme olmadan) yine de işleri daha basit tutar (çünkü yeniden yönlendirirken, diskte kullanılan son dosya adı maalesef indirmek için kullanılan araca bağlı olarak değişir).
Stephen Kitt

10

Dosya adları temel olarak arşiv bakım yazılımı ve yerel önbellek yararına standartlaştırılmıştır.

Eski günlerde, m68kmimari Debian'a eklenmeden önce , dosya adlarında " paket _ sürümü .deb" kullanıldı ve hiçbir sorun yoktu. Arşiv yazılımı aynı paket ve sürümün aynı dizinde saklanması i386ve m68kpaketlenmesi gerektiğinde, mimari adı dosya adına eklenmiştir . Paket listesi her zaman hem uzun hem de 8.3 dosya adlarını içerdiğinden , bunlar istemcileri bozmadan uygulanabilir.

Dpkg genellikle paketlerin dosya adlarını umursamaz. Yükleme koşular sırasında, APT bu yükleme çalışması için tüm paket dosyaları ile bir dizin oluşturur ve her dosya (dosya adının başına cari vadede numarası olacaktır yani paket yüklerseniz foosürüm 1 ve paket barsürüm 2, foobağlıdır , apt geçecek 0-bar_2_all.debve 1-foo_1_amd64.debdpkg).

APT genellikle adların önbellekleme amacıyla benzersiz olduğunu varsayar. Bir adı yeniden kullanırsanız, bu dosyayı önbellekte bulunduran kullanıcılar, yeni dosya daha büyükse indirmeyi sürdürmeye çalışır ve bu da bunları sağlama toplamı testinde başarısız olduğu için atılan geçersiz bir dosyaya bırakır. Ancak bu hata kullanıcıya gösterilir ve yükleme işlemini yeniden başlatmaları gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.