जीएनयू लिनक्स में एक सुविधा के लिए पूछने का सही तरीका क्या है?


35

मैं ऐप फ़ाइल, / usr / bin / फ़ाइल के लिए एक बग रिपोर्ट भेजने का प्रयास कर रहा हूं

लेकिन आदमी से सलाह लेना और ईमेल भेजना

BUGS बग्स की रिपोर्ट करें और http://bugs.gw.com/ पर बग ट्रैकर को पैच भेजें या atfile@mx.gw.com Please पर मेलिंग सूची ( http://mx.gw.com/mailman/ पर जाएं) सूची / सदस्यता के लिए पहले फ़ाइल )।

मुझे पता चला मेल पता मौजूद नहीं है।

क्या समुदाय में संवाद करने का एक और तरीका है? उम्मीद है कि यहाँ यह सवाल पहले से ही इसका हिस्सा है :)

तो यहाँ मेरा ईमेल है:

संभव सुविधा विफलता: --extensionविकल्प कुछ भी आउटपुट नहीं लगता है

$ file --extension "ab.gif" 
ab.gif: ???

किसी फ़ाइल का उसके सही एक्सटेंशन में नाम बदलने के लिए आसानी से इसका उपयोग करने में सक्षम होना उपयोगी होगा।

फ़ाइल की तरह कुछ --likely_extensionकेवल संभावना का पता लगाया विस्तार या एक त्रुटि उत्पादन अगर पता लगाने के बहुत कम था

इस प्रकार:

$ file --likely_extension "ab.gif"
gif

हालांकि एक --correct_extensionविकल्प बेहतर होगा :

$ file --correct_extension "ab.jpg"

$ ls
ab.gif

इस एप्लिकेशन के लिए Tyvm :)


8
आपकी समस्या वर्णन का दूसरा भाग एक शुद्ध सुविधा अनुरोध है जो कुछ यूनिक्स टूल लेखकों द्वारा रखे गए डिज़ाइन दर्शन के लिए काउंटर चला सकता है - केवल एक काम करें, इसे अच्छी तरह से करें। कोई व्यक्ति फ़ाइल (1) की कार्यक्षमता बनाए रखना चाहता है, लेकिन
बेसिन बेसनैम

3
इसे लिखें ........
जोएलफैन

आप एक ऐसी सुविधा चाहते हैं जो पहले से मौजूद सामान्य समर्थित टूल (जैसे awk) का उपयोग करके पूरी की जा सके? सॉफ़्टवेयर लेखक को आप के बारे में बताने के लिए इच्छुक हो सकते हैं, या कम से कम, लिनक्स दर्शन के बारे में सोच सकते हैं । एक बार जब आपके पास एक काम करने वाला पैच होता है, तो आपको अधिक गंभीरता से लिया जाएगा।
TOOGAM

V5.25 में, कुछ फ़ाइल प्रकारों के लिए काम file --extension करता है (जैसे .jpg)। हो सकता है कि यह "।" काम नहीं करता है .gif क्योंकि कोई अन्य मान्य फ़ाइल एक्सटेंशन नहीं हैं।
रॉनजॉन

2
एक उदाहरण के रूप में, मेरे सिस्टम पर: file --extension calf.jpg flower.gifआउटपुट: calf.jpg: jpeg/jpg/jpe/jfifऔर flower.gif:उन फाइलों के लिए संभावित अन्य एक्सटेंशन दिखा रहा है (जीआईएफ फाइल के मामले में कोई नहीं)। ध्यान दें कि fileफ़ाइल के प्रकार पर केवल एक शिक्षित अनुमान लगता है - यह ऐसा करने के लिए उत्तराधिकार के एक सेट का उपयोग करता है। यह नाम से विस्तार का पता नहीं लगा रहा है। अगर मैं नाम बदलने calf.jpgके लिए calf.txtयह अभी भी एक JPEG फ़ाइल है और fileमुझसे कहता है कि जब मैं चलाने file calf.txtयह भी मुझसे कहता है कि संभव एक्सटेंशन हैं jpeg/jpg/jpe/jfifजब मैं चलाने के file --extension calf.txt
अगली सूचना तक रोक दिया गया।

जवाबों:


48

आप किसी समस्या या एन्हांसमेंट अनुरोध को दर्ज करने के लिए सही प्रक्रिया का पालन कर रहे हैं: यदि किसी प्रोग्राम के दस्तावेज़ में ऐसा करने का उल्लेख है, तो उन निर्देशों का पालन करें।

दुर्भाग्य से अक्सर ऐसा होता है कि परियोजनाएं मर जाती हैं, या यह कि संस्करण में दिए गए निर्देश अब सटीक नहीं हैं। इन मामलों में, चीजें थोड़ी कठिन हो जाती हैं। आपके वितरण के साथ बग दर्ज करने के लिए एक संभावित सामान्य दृष्टिकोण है; सफलता हालांकि हिट-या-मिस हो सकती है ... (लेकिन मुझे यह उल्लेख करना चाहिए कि आमतौर पर वितरण के लिए बग की रिपोर्ट करना बेहतर होता है, यदि आप किसी पैकेज का उपयोग कर रहे हैं, तो यह विशेष रूप से सच है, यदि पैक किया गया है; संस्करण वर्तमान "अपस्ट्रीम" संस्करण से पुराना है, और यदि आपने जांच नहीं की है कि क्या समस्या अभी भी वहां मौजूद है।)

के लिए fileविशेष रूप से, आधिकारिक दस्तावेज है कि बग ट्रैकर और मेलिंग सूची नीचे हैं उल्लेख करने के लिए अद्यतन किया गया है, और यह भी वर्तमान मेंटेनर, जो आप उससे संपर्क करने के लिए इस्तेमाल कर सकते हैं के लिए एक सीधा ईमेल पता प्रदान करता है।


23

स्टीफन किट के जवाब के अलावा , आप विचार कर सकते हैं (खासकर यदि आप खुद एक डेवलपर हैं, और यदि प्रोग्राम - fileआपके मामले में - स्रोत कोड है जिसे समझना बहुत मुश्किल नहीं है) तो उस प्रोग्राम के स्रोत कोड को लाना संभव है (शायद आपके पास से) वितरण) - चूंकि यह मुफ्त सॉफ्टवेयर है - और इसे पैच करना, और पैच भेजना भी।

यदि आप स्रोत कोड का अध्ययन करने के लिए समय लेते हैं , तो आप शायद एक बेहतर बग रिपोर्ट करेंगे।

यदि आप एक फिक्सिंग पैच का प्रस्ताव करने के लिए अधिक समय लेते हैं, तो आपको और अधिक गंभीरता से विचार करने की संभावना है (और आईएमएचओ आप मुफ्त सॉफ्टवेयर की भावना में अधिक कार्य कर रहे हैं)।

तो मुफ्त सॉफ्टवेयर द्वारा प्रदान की गई स्वतंत्रता का उपयोग करें : इसके स्रोत कोड (स्वतंत्रता # 1) का अध्ययन करें और इसे सुधारें (स्वतंत्रता # 3)।

आज आपके बेहतर संस्करण को प्रकाशित करना (जैसे जीथब पर ) प्रकाशित करना बहुत आसान है और इसे साझा करें (स्वतंत्रता # 2)।

fileकार्यक्रम की नवीनतम रिलीज सुनिश्चित करें । कई वितरण उस का उपयोग नहीं कर रहे हैं (और शायद आपके डिस्ट्रो में बग को पहले से ही ऊपर की तरफ तय किया गया है)।

मुझे यकीन नहीं है कि आपका --correct_extensionव्यवहार संबंधित है file(जो कि प्रश्न करने के लिए एक कार्यक्रम है , परिवर्तन नहीं, आपका डेटा)। लेकिन अगर ऐसा होता है, तो शायद यह वर्तनी होनी चाहिए --correct-extensionया --rename-extension... और एक बार जब आप इसे लागू करने की कोशिश करते हैं, तो आपको पता चल सकता है कि अजीब कोने के मामले हैं (एक gzipped टार फाइल के बारे में क्या है, या एक संकुचित सी स्रोत फ़ाइल, या कुछ और जो हो सकता है कई फ़ाइल एक्सटेंशन की जरूरत है)।

ध्यान दें कि लिनक्स और यूनिक्स पर (विंडोज के विपरीत) वास्तव में एक इनोड ( इनोड देखें (7) ) है और इसमें कई नाम (या कोई नहीं) हो सकते हैं, और एक साथ कई प्रक्रियाओं द्वारा खोले जा सकते हैं ( फाइल डिस्क्रिप्टर के बारे में पढ़ें ) - या कोई नहीं, भले ही अधिकांश फ़ाइलों का केवल एक ही नाम हो (लेकिन लिंक देखें (2) और स्टेट (2) )। चूंकि एक ही फाइल का नाम दिया जा सकता है foo.txtऔर bar.gzयह फाइल एक्सटेंशन को महत्व देने के लिए बहुत मायने नहीं रखता है। Path_resolution (7) भी देखें ।

इसलिए, यदि आप अपने correct-extensionविचार को लागू करने का प्रयास करते हैं , तो आपको पता चलेगा कि इसे लागू करना (और यहां तक ​​कि निर्दिष्ट करना) सरल नहीं है, और इसके लिए कोई स्पष्ट सरल व्यवहार नहीं है।

संभवतः, आपका विचार बहुत अच्छा नहीं है, और लिनक्स और पोसिक्स सिस्टम पर आसानी से लागू नहीं किया जा सकता है (कम से कम, सभी मामलों के लिए नहीं)।

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

शायद कुछ यूनिक्स प्रोग्रामिंग बुक (पुराने एएलपी की तरह , या कुछ नया भी पढ़ें ; और इंट्रो (2) और syscalls (2) ) और ऑपरेटिंग सिस्टम: थ्री ईज़ी पीसेज भी पढ़ें ।


10
मैं इसे कैसे भूल सकता हूं - वास्तव में, एक सुविधा के लिए "पूछने" का सबसे अच्छा तरीका इसे लागू करना है!
स्टीफन किट

2
+1 इंगित करने के लिए जो fileजानकारी प्रदान करता है, और कुछ भी नहीं बदलता है। इसके अलावा, यह धारणा कि किसी भी तरह से किसी फ़ाइल का "एक्सटेंशन" इंगित करता है कि इसे खोलने के लिए किस एप्लिकेशन (एप्लिकेशन) का उपयोग किया जाना चाहिए, यह बहुत विंडोज-उन्मुख है। लिनक्स ने हमेशा एक फ़ाइल के पहले कुछ बाइट्स में एक विशिष्ट हस्ताक्षर डालने के "जादू नंबर" दृष्टिकोण का पालन किया है, और फिर नाम कुछ भी होने की अनुमति देता है। सादृश्य के अनुसार, मैं एक विंडोज सिस्टम में एक फाइल था, मुझे कुछ भी जानने के लिए "मोंटी हार्डर.हूमन" होना चाहिए, लेकिन लिनक्स मेरी सामग्री के हिस्से के रूप में देखता है, और नाम स्वेच्छापूर्ण।
मोंटी हार्डर

1
यदि आप सही स्रोत कोड का पता लगा सकते हैं तो आप कमिटर का भी पता लगा सकते हैं।
थोर्बोजर्न रावन एंडरसन

2
@StephenKitt यहां तक कि लिनक्स से पहले, यूनिक्स shebangs था और fileसाथ magicफ़ाइल है, तो मैं नहीं जानता कि कैसे "रेट्रो-फिट" यह है। MacOS के दृष्टिकोण ने फ़ाइल मेटाडेटा ("संसाधन कांटा") में एक स्पष्ट फ़ाइल प्रकार डाला, जो फ़ाइल के अंदर संग्रहीत है लेकिन एक अलग कंटेनर में।
मोंटी हार्डर

2
@ l0b0 मैं आपकी बात देख रहा हूं, लेकिन मुझे लगता है कि यह कहना मददगार है कि किसी सुविधा का अनुरोध करने का सबसे अच्छा ( केवल ) तरीका यह है कि आप इसे लागू कर सकें, यदि आप कर सकते हैं। जिन लोगों के पास आवश्यक प्रोग्रामिंग कौशल नहीं है वे सुरक्षित रूप से इसे अनदेखा कर सकते हैं, लेकिन जो लोग करते हैं वे इसे उपयोगी पाएंगे।
डेविड जेड

11

तुम पूछो:

जीएनयू लिनक्स में एक सुविधा के लिए पूछने का सही तरीका क्या है?

और इसका उत्तर देने के लिए, यह जानना महत्वपूर्ण है कि "GNU Linux" जैसी कोई एक चीज नहीं है। GNU प्रोजेक्ट मुफ्त सॉफ्टवेयर विकसित करने के लिए एक सहयोगी प्रयास है। उस मुफ्त सॉफ्टवेयर में से कुछ - अन्य मुफ्त और खुले स्रोत सॉफ़्टवेयर की बड़ी मात्रा के साथ - अन्य परियोजनाओं द्वारा एकत्र किया जाता है : या तो सहयोगी, खुले प्रोजेक्ट्स जैसे फेडोरा * या डेबियन, या कॉर्पोरेट प्रयास खुलेपन की डिग्री बदलती के साथ, या यहां तक ​​कि व्यक्ति भी। इन संग्रहों को "लिनक्स वितरण" या "जीएनयू / लिनक्स वितरण" कहा जाता है (वहाँ एक राजनीतिक बहस है जो मुझे नहीं मिलेगी)।

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

इसलिए, आपने यहां सही काम किया है - आपने प्रलेखित अपस्ट्रीम स्रोत पाया और वहां रिपोर्ट करने की कोशिश की।

हालांकि, ऐसा प्रतीत होता है कि आपके द्वारा रुचि रखने वाले सॉफ़्टवेयर के टुकड़े के लिए प्रलेखित संचार विधियाँ काम नहीं कर रही हैं। उस स्थिति में, आपके पास कई विकल्प हैं:

  1. सॉफ़्टवेयर के डेवलपर्स से संपर्क करने के अन्य तरीके खोजने का प्रयास करें। इस स्थिति में, अधिकांश डिस्ट्रोस में fileमूल रूप से इयान डार्विन द्वारा लिखी गई कमांड और http://www.darwinsys.com/file/ पर नामांकित सूची शामिल है, आपके द्वारा उल्लिखित मेलिंग सूचियों के साथ। लेकिन उन मेलिंग सूचियों की तरह, मुख्य साइट नीचे दिखाई देती है। इस दिन और उम्र में, GitHub की जाँच करना एक अच्छा दूसरा चरण है, और मैंने https://github.com/file/file पाया - जिसमें लिखा है कि केवल फ़ाइल CVS रिपॉजिटरी का दर्पण, हर आधे घंटे में अपडेट किया जाता है। नोट: यहां पुल अनुरोध न करें, न ही कोई टिप्पणी करें, उन्हें सामान्य रूप से बग ट्रैकर या मेलिंग सूची में जमा करें। यह तुरंत मददगार नहीं है, लेकिन मुझे लगता है कि वहाँ हैपिछले सप्ताह में उस रेपो में परिवर्तन किया गया। इसलिए, एक संभावित अगला कदम यह देखना है कि उन लोगों ने कौन किया और उनसे संपर्क किया।
  2. आप अपने द्वारा उपयोग किए गए डिस्ट्रो में पैकेज के लिए जिम्मेदार व्यक्ति से पूछ सकते हैं। के लिए fileफेडोरा में, देखने के इस पेज । चूंकि वे नियमित रूप से सॉफ्टवेयर के साथ काम करते हैं, इसलिए उनके पास अपस्ट्रीम से संपर्क करने के अन्य साधन हो सकते हैं। डिस्ट्रो के आधार पर, यह सबसे अच्छा बग दर्ज करके या सीधे संपर्क द्वारा किया जाता है - आपको व्यक्तिगत संस्कृति को जानने की आवश्यकता है। (फेडोरा में, मैं देवल मेलिंग सूची का सुझाव दूंगा ।)
  3. यदि आप Red Hat Enterprise Linux * की तरह वाणिज्यिक वितरण का उपयोग कर रहे हैं, तो आप एक समर्थन टिकट दाखिल कर सकते हैं। भुगतान करने वाले ग्राहक के रूप में, आप समाधान खोजने के लिए अपने विक्रेता को प्रभावित करने में सक्षम हो सकते हैं।
  4. यदि बाकी सब विफल हो जाता है, तो जिस परियोजना में आप रुचि रखते हैं, वह अपस्ट्रीम मृत हो सकती है । उस स्थिति में, आप प्रोजेक्ट को "कांटा" कर सकते हैं - अपना खुद का संस्करण बना सकते हैं, और इसके चारों ओर एक नया अपस्ट्रीम समुदाय बना सकते हैं। यदि आपका संस्करण बना हुआ है और दूसरा मृत है, तो संभावना है कि वितरण का पालन होगा।

* मैं फेडोरा पर काम करता हूं। और मैं Red Hat द्वारा नियोजित हूँ।


2
"यह जानना महत्वपूर्ण है कि" GNU Linux "जैसी कोई एकल चीज नहीं है" - विशेष रूप से, यह महसूस करना महत्वपूर्ण है कि लिनक्स का GNU से कोई लेना-देना नहीं है और GNU का लिनक्स से कोई लेना-देना नहीं है। जीएनयू परियोजना से एक लिनक्स सुविधा के लिए पूछना या लिनक्स डेवलपर से एक जीएनयू उपयोगिता के लिए एक सुविधा के लिए पूछना सबसे अधिक संभावना केवल नजरअंदाज किया जाएगा।
जोर्ग डब्ल्यू मित्तग

3
या उन दोनों में से एक गैर-जीएनयू उपयोगिता के लिए एक सुविधा के लिए पूछ रहा है।
user253751

4

यह आपके वितरण में एक बग है। यदि वितरण मानव-पृष्ठ शिपिंग है जो पुराने हैं, तो आपको उस पैकेज के खिलाफ बग दर्ज करना चाहिए जिसने इसे प्रदान किया है। यदि आप डेबियन का उपयोग कर रहे हैं, तो आप इस सरल बनाने के लिए रिपोर्टबग जैसे उपकरण का उपयोग कर सकते हैं।


3
नहीं, यह वितरण में एक बग नहीं है: अपस्ट्रीम मैन पेज अभी भी एक ही जानकारी प्रदान करता है।
स्टीफन किट

1
किसी भी स्थिति में, वितरण में पैकेज के
अनुचर

2
identify -format %m file.gif[0]

% m छवि फ़ाइल प्रारूप (फ़ाइल जादू)

[०] का अर्थ है पहला फ्रेम, जो यदि आप गलती से किसी वीडियो पर उपयोग कर सकते हैं तो यह मदद कर सकता है अन्यथा यह प्रत्येक फ्रेम की एक अस्थायी प्रतिलिपि बनाने के लिए ffmpeg लाइब्रेरी का उपयोग करता है।

यह केवल छवियों के लिए काम करता है। मुझे नहीं पता कि यह जेनेरिक फ़ाइलों के लिए कैसे करना है। ffmpeg बेतरतीब mp4 फ़ाइल के लिए 'avc1' लौटाता है (अन्य mp4 फाइलें अलग-अलग तार लौटा सकती हैं, और आपको अभी भी इसे पार्स करना है), और मुझे उस 'mp4' से आने का कोई रास्ता नहीं दिखता है। 'avc1' कहीं भी / usr / share / mime में नहीं है।

ffmpeg, या समान रूप से ffprobe, कुछ फ़ाइल स्वरूपों को सूचीबद्ध करता है जो अपने आउटपुट की शुरुआत में डिम्यूसर का उपयोग करता है। एक mp4 फ़ाइल के लिए यह कहते हैं

इनपुट # 0, मूव, mp4, m4a, 3gp, 3G2, mj2, से। । ।
[। । ।]
वीडियो: h264 (मुख्य) (avc1 / 0x31637661)

एक कश के लिए यह कहते हैं

इनपुट # 0, png_pipe, से। । ।
[। । ।]
वीडियो: पीएनजी, आरजीबी 24 (पीसी)

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