उबंटू की परिभाषा "पंजीकृत अनुप्रयोग" क्या है?


11

स्रोत से एप्लिकेशन इंस्टॉल करते समय, और कभी-कभार हैक के दौरान मैंने इसे कुछ बार चलाया है update-alternatives। अब तक, यह केवल एक छोटी सी झुंझलाहट है (यानी, अंत-लक्ष्य के रास्ते में नहीं मिला), लेकिन यह अब निराशा है क्योंकि यह मेरे ज्ञान-आधार के एक छेद की ओर इशारा कर रहा है ... इसलिए जब मुझे एक संदेश मिलता है कि ' foo '' एक पंजीकृत अनुप्रयोग नहीं है '' (या मैं foo के डिफ़ॉल्ट आइकन का उपयोग नहीं कर सकता क्यूज़ उबंटू को 'foo' का कोई ज्ञान नहीं है:

  1. क्या "पंजीकृत अनुप्रयोग" को परिभाषित करता है?

  2. मैं स्रोत से स्थापित एप्लिकेशन (और $ HOME / बिन / ऐप-नाम में रहने की संभावना) को कैसे परिभाषित कर सकता हूं कि यह एक .deb से स्थापित पैकेज के समान कार्यक्षमता पैक करता है? (यदि समाधान 1 उत्तर से स्पष्ट नहीं है)

उदाहरण:

मैं डाउनलोड और खोलना दैनिक देव की बनाता sublime-text-2करने के लिए /home/tom/bin/sublime-text-2। मैंने उपयुक्त शॉर्टकट्स के साथ एक * .desktop फ़ाइल बनाई है, आदि। लेकिन सबलेक के लिए आइकन किसी भी लॉन्चर में प्रदर्शित नहीं किया जा सकता है, भले ही मैं विकल्प के लिए पूर्ण पथनाम प्रदान करता हूं। समाधान एक डिब पैकेज से उदात्त का दूसरा उदाहरण स्थापित करना है ।

जब मैं एक .deb पैकेज से उदात्त-पाठ -2 स्थापित करता हूं, तो यह नीचे /usr/bin && /usr/libस्थापित होता है । स्थापित .desktop फ़ाइल को नीचे संग्रहीत किया जाता है /usr/share/applications, और संबंधित पंक्ति पढ़ता है icon=sublime_text:।

मैं कहां गायब हूं? किसी तरह उबंटू जानता है कि sublime_textबाद में आइकन को कैसे ठीक किया जाए , लेकिन पूर्व में नहीं (फिर से, यहां तक ​​कि पूर्ण पथ प्रदान किया गया)।


आपके होम फोल्डर में आप यह लॉन्चर कहां डाल रहे हैं?
यशायाह

इसके अलावा, आपको संदेश कब मिलता है: "फू एक पंजीकृत अनुप्रयोग नहीं है"?
यशायाह

@ डोर: मेरी उदात्तता .desktop के अंतर्गत है /.local/share/applications। सबसे उल्लेखनीय स्थान जिसे मैं "पंजीकृत ऐप" संदेश याद कर सकता हूं, जब update-alternativesसूची में विम के संकलित-से-स्रोत संस्करण को छेड़ने की कोशिश की गई थी, तो यह 'डिफ़ॉल्ट' इंस्टॉल के बजाय आएगा। सहायक? लगता है कि मैं क्या देख रहा हूं, वह तंत्र है जो उबंटू को ज्ञान प्रदान करता है कि कहां पर (उदाहरण के लिए) ऐप ए के लिए सही आइकन - जैसा कि यह .desktop फ़ाइलों के साथ करता है /usr/share/applications/
टॉम

यदि आप अपने ~/.local/share/applicationsलॉन्चर में "आइकन" का मान सिर्फ sublime_text( पूरा रास्ता नहीं) निर्धारित करते हैं , तो क्या वह काम करता है?
यशायाह

जवाबों:


3

मुझे लगता है कि आप एक साथ स्रोत की स्थापना के साथ कई समस्याओं में चल रहे हैं।

update-alternativesआपको किसी भी प्रोग्राम को दिए गए नाम के लिए पसंदीदा एप्लिकेशन के रूप में सेट करने की अनुमति नहीं देगा। कार्यक्रम को पहले --installविकल्प के साथ पंजीकृत करना होगा । उदाहरण के लिए:

sudo update-alternatives --set editor /home/peter/bin/foo
update-alternatives: error: alternative /home/peter/bin/foo for editor not registered, not setting.

यदि आप यह देखना चाहते हैं कि पंजीकरण कैसे किया जाता है, उदाहरण के लिए देखें /var/lib/dpkg/info/nano.postinst

हालांकि, ध्यान दें कि यह सिस्टम-वाइड विकल्प को परिभाषित करने के लिए काफी संगीन होगा जो कुछ उपयोगकर्ता के होम डायरेक्टरी की ओर इशारा करता है। आमतौर पर पर्यावरण चर या अन्य सेटिंग्स केवल एक उपयोगकर्ता के लिए वरीयता निर्धारित करने के लिए होती हैं।

डेस्कटॉप फ़ाइल के साथ समस्या शायद पूरी तरह से अलग है, लेकिन आपको इसके बारे में अधिक जानकारी प्रदान करनी होगी कि आपने किन रास्तों का उपयोग किया है।

सामान्य तौर पर, विशेष एप्लिकेशन के आधार पर, स्रोत से किसी एप्लिकेशन को स्थापित करना बाकी सिस्टम के साथ अच्छी तरह से एकीकृत होना काफी मुश्किल हो सकता है।


पीटर: हां, मुझे लगता है कि आपने नाखून मारा है ... और प्रतिबिंब पर मेरी सोच सही है। मैं एक लैपटॉप पर सिस्टम का उपयोग कर रहा हूं - एक लैपटॉप केवल मैं उपयोग करता हूं, लॉगिन करता हूं आदि। और निश्चित रूप से, यूनिक्स एक बहु-उपयोगकर्ता ओएस है, और प्रोग्राम की स्थापना को इस तरह परिभाषित करता है। आइकन चीज़ तुच्छ है और मेरा मानना ​​है कि एक विचित्रता है। मुझे sublime-text postinstआपके चेक में एक अलग आइकन फ़ाइल मिली जैसा कि आपने सुझाव दिया था, इसलिए मैं अब एक विशिष्ट फ़ाइल के बजाय वैकल्पिक इंस्टॉल (मेरे $ घर के भीतर) को इंगित कर सकता हूं बजाय इसे निष्पादन योग्य से 'ऑटो-मैजिकली' खोजने की अनुमति देता हूं। मैं इस बंद / हल को चिह्नित कर रहा हूं क्योंकि मुझे विश्वास है कि मेरे पास अब क्या है।
टॉम

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