क्या मानकों द्वारा नामित .deb फ़ाइल का नाम बदलना सुरक्षित है?


13

.debफ़ाइल नाम की स्थापित संरचना है package_version_architecture.debइस पैराग्राफ के
अनुसार :

कुछ संकुल नाम संरचना का पालन नहीं करते हैं package_version_architecture.deb। Dpkg-name द्वारा बदला गया पैकेज इस संरचना का अनुसरण करेगा। आम तौर पर इसका कोई प्रभाव नहीं होगा कि कैसे पैकेज dselect / dpkg द्वारा स्थापित किए जाते हैं, लेकिन अन्य इंस्टॉलेशन उपकरण इस नामकरण संरचना पर निर्भर हो सकते हैं।

सवाल:

हालांकि, वहाँ किसी भी असली स्थितियों जब नाम बदलने हैं .debपैकेज फ़ाइल अत्यधिक है संयुक्त राष्ट्र की सिफारिश की? क्या .debमेरे सॉफ़्टवेयर के लिए एक कस्टम फ़ाइल नाम प्रदान करना एक सामान्य अभ्यास है ?

उदाहरण:

  • My Program for Linux v1.0.0 (Pro).deb - कस्टम नामकरण
  • my-program_1.0.0-1_amd64.deb - उचित आधिकारिक नामकरण

ध्यान दें:

मैं रेपो बनाने की योजना नहीं बना रहा हूं, मैं .debसीधे डाउनलोड के लिए अपनी वेबसाइट पर अपने सॉफ़्टवेयर के पैकेज की मेजबानी कर रहा हूं ।


8
कृपया, सभी चीजों के प्यार के लिए पवित्र अपने फ़ाइल नामों में रिक्त स्थान या कोष्ठक का उपयोग करें। वे इसे कमांड लाइन से संभालने के लिए गधे में दर्द करते हैं, और फ़ाइल हैंडलिंग में बग का एक संभावित स्रोत हैं।
ऑस्टिन हेमेलर्गरन

जवाबों:


26

इन वर्षों में, मैंने .debगैर-मानक नामों के साथ बड़ी संख्या में पैकेज जमा किए हैं, और मुझे किसी भी समस्या में चलने की याद नहीं है। गैर-मानक नामों के साथ "प्रसिद्ध" पैकेज जो आजकल लोगों में शामिल हो सकते हैं google-chrome-stable_current_amd64.debऔर steam.deb। (दोनों मामलों में, निश्चित, संस्करण रहित नाम यह सुनिश्चित करता है कि डाउनलोड के लिए एक स्थिर URL का उपयोग किया जा सकता है, और इंस्टॉलेशन निर्देशों के लिए एक स्थिर नाम।)

हालाँकि मुझे उनके नामों में रिक्त स्थान के साथ चलने की याद नहीं है; या तो टूल के साथ समस्याएँ पैदा नहीं होनी चाहिए, लेकिन यह आपके उपयोगकर्ताओं के लिए भ्रम पैदा कर सकता है (क्योंकि उन्हें फ़ाइल नाम को उद्धृत करने या रिक्त स्थान से बचने की आवश्यकता होगी यदि वे शेल-आधारित टूल का उपयोग कर रहे हैं)।

एक और ध्यान देने वाली बात यह है कि एक गैर-मानक नाम का उपयोग करना जो आपके पैकेज के नाम के समान नहीं है (जैसा कि controlफ़ाइल में संग्रहीत है ) भी भ्रम पैदा कर सकता है, जैसे कि पैकेज को हटाने का प्रयास करते समय (क्योंकि पैकेज का नाम नहीं होगा) उसी के रूप में नाम इसे स्थापित करने के लिए इस्तेमाल किया)।

इस सब के परिणामस्वरूप, यदि आप विहित नाम से चिपके नहीं रहना चाहते हैं तो मैं कुछ ऐसा सुझाऊंगा my-program.debया my-program_amd64.deb(इस पर निर्भर करता है कि आप कई आर्किटेक्चर का समर्थन करना चाहते हैं)। यदि आप पुराने संस्करणों को डाउनलोड करने की अनुमति देना चाहते हैं, तो आप इसे वर्जन फ़ाइल नाम के लिए एक सिम्लिंक भी बना सकते हैं।


"डाउनलोड के लिए एक स्थिर URL का उपयोग किया जा सकता है" - मुझे आश्चर्य होगा कि अगर Google और वाल्व ने पुनर्निर्देशन के बारे में कभी नहीं सुना है।
ऑरेंजडॉग

@ ऑरेंजडॉग। I में एक निश्चित डाउनलोड (बिना रीडायरेक्ट के) होने के बाद भी चीजें सरल बनी रहेंगी (क्योंकि रीडायरेक्ट होने पर, डिस्क पर प्रयुक्त अंतिम फ़ाइल नाम दुर्भाग्य से डाउनलोड होने वाले टूल के आधार पर भिन्न होता है)।
स्टीफन किट

10

फ़ाइल नाम मुख्य रूप से संग्रह रखरखाव सॉफ्टवेयर और स्थानीय कैश के लाभ के लिए मानकीकृत हैं।

पुराने दिनों में, इससे पहले कि m68kवास्तुकला को डेबियन में जोड़ा गया, फ़ाइल नाम " पैकेज _ संस्करण ।deb" का उपयोग किया गया, जिसमें कोई समस्या नहीं थी। आर्किटेक्चर का नाम फ़ाइल नाम में जोड़ा गया था जब एक ही डायरेक्टरी में एक ही पैकेज और वर्जन के स्टोरेज i386और m68kस्टोरेज के लिए आर्काइव सॉफ्टवेयर की जरूरत थी । जैसा कि पैकेज सूची में हमेशा लंबे और 8.3 फ़ाइल नाम दोनों होते हैं , जो कि ग्राहकों को तोड़ने के बिना लागू किया जा सकता है।

Dpkg आमतौर पर पैकेज के फ़ाइल नामों के बारे में बिल्कुल भी परवाह नहीं करता है। इंस्टॉलेशन रन के दौरान, APT इस इंस्टॉलेशन रन के लिए सभी पैकेज फ़ाइलों के साथ एक निर्देशिका बनाता है, और प्रत्येक फ़ाइल में फ़ाइल नाम से प्रचलित वर्तमान रन में नंबर होगा (यानी यदि आप पैकेज fooसंस्करण 1 स्थापित करते हैं , और पैकेज barसंस्करण 2, जो fooइस पर निर्भर करता है , apt पास होगा 0-bar_2_all.debऔर 1-foo_1_amd64.debdpkg को)।

APT आम तौर पर मानता है कि नाम कैशिंग उद्देश्यों के लिए अद्वितीय हैं। यदि आप एक नाम का पुन: उपयोग करते हैं, तो जिन उपयोगकर्ताओं के पास यह फ़ाइल है उनके कैश में पहले से ही डाउनलोड को फिर से शुरू करने का प्रयास करेंगे यदि नई फ़ाइल बड़ी है, जो उन्हें एक अमान्य फ़ाइल के साथ छोड़ देगा जो बाद में खारिज कर दिया जाता है क्योंकि यह चेकसम टेस्ट में विफल रहता है। हालांकि यह त्रुटि उपयोगकर्ता को दिखाई गई है, और उन्हें इंस्टॉलेशन रन को पुनरारंभ करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.