लॉन्चर के माध्यम से स्थापित प्रोग्राम लॉन्चर में दिखाई नहीं दे रहे हैं


37

बस Ubuntu 16.04 में अपडेट किया गया और पहली बार स्नैप पैकेज की कोशिश कर रहा है।

इसलिए मुझे कुछ stl फ़ाइलों को देखने के लिए मेज़लैब की आवश्यकता थी। पॉट लॉग इन के साथ जारी करने के लिए दौड़ा। पाया गया कि स्नैप पैकेजों के कमांड लाइन इंस्टॉल को लॉग इन की आवश्यकता नहीं है।

sudo snap install meshlab

और हे presto meshlap स्थापित, कोई पिट लॉग इन नहीं है। कमांड लाइन से ठीक काम करता है। हालाँकि प्रोग्राम लॉन्चर में दिखाई नहीं देता है। ऐसा क्यों है? लॉन्चर में स्नैप पैकेज दिखाई नहीं देते हैं? मैं इसे कैसे ठीक करूं?

जवाबों:


40

यदि आप zsh का उपयोग कर रहे हैं, तो स्नैप बाइनरी और डेस्कटॉप निर्देशिकाएं स्वचालित रूप से आपके पर्यावरण चर में नहीं जोड़ी जाएंगी। इसे हल करने के लिए, मैंने निम्नलिखित पंक्ति को / etc / zsh / zprofile (Arch से लिया गया) में जोड़ा:

emulate sh -c 'source /etc/profile'

यह आपके / etc / प्रोफाइल फाइल को bash emulation के साथ प्रोसेस करेगा, जो बदले में स्रोतों /etc/profile.d/* और उचित PATH आदि को सेट करता है।

अपने रास्ते में केवल स्नैप निर्देशिकाओं को जोड़ने के लिए, सभी डिफ़ॉल्ट बश प्रोफ़ाइल को शामिल किए बिना:

emulate sh -c 'source /etc/profile.d/apps-bin-path.sh'

1
धन्यवाद! 17.10 को भी काम करता है। Zsh पर स्विच करने से मेरे लिए यह समस्या बढ़ गई।
danwit

2
उन्हें इसे स्थापित प्रक्रिया में ठीक करना चाहिए या स्नैप के लिए FAQ / समस्या निवारण चरण जोड़ना चाहिए।
ब्रैडएर्ज़ोव

1
धन्यवाद, मेरे लिए 18.10 पर काम किया। उम्मीद है कि यह भविष्य में किसी तरह तय हो जाएगा।
पावेल डेविडोव

1
शानदार, दुर्भाग्य से इसकी अभी भी एक पर 19.04 समस्या
jhole89

11

यह स्नैप सिस्टम में बनाया गया है, लेकिन आपको अपने डैश पर लिंक जोड़ना होगा। प्रोग्राम का प्रकार शुरू करने के लिए

snap run meshlab

एक बार जब यह ऊपर और चल रहा है, तो आइकन पर राइट क्लिक करें और "डैश में जोड़ें" पर क्लिक करें।


7

मेरे लिए, यह उबंटू 18.04 के तहत वायलैंड / जेडएसएच के संयोजन से संबंधित भी प्रतीत होता है - भले ही /var/lib/snapd/desktopयह XDG_DATA_DIRSचर में सूचीबद्ध है (यह द्वारा किया जाता है /etc/profile.d/apps-bin-path.sh), लॉन्चर उस फ़ोल्डर से एप्लिकेशन को नहीं पहचानता है।

उदाहरण के लिए वांछित डेस्कटॉप फ़ाइलों को सी-लिंक करने के लिए एक त्वरित समाधान है:

ln -s /var/lib/snapd/desktop/applications/rubymine_rubymine.desktop .local/share/applications

5

लॉन्चर में स्नैप पैकेज दिखाई नहीं देते हैं?

वे तब तक करते हैं जब तक स्नैप जहाजों को उचित .desktop फ़ाइलें। केवल मेशलैब की meshlabserverएक उचित डेस्कटॉप फ़ाइल है (और वास्तव में, यह मेरे लॉन्चर में दिखाई देता है)। meshlab.Desktop फ़ाइल, तथापि, exec करने के लिए प्रयास कर रहा है meshlab.meshlab, जब यह बस का उपयोग करना चाहिए meshlab। नतीजतन, यह दिखाई नहीं देता है।

मैं इसे कैसे ठीक करूं?

यदि आप चलाते हैं snap info meshlabतो आपको प्रकाशक के लिए संपर्क जानकारी दिखाई देगी। मेरा सुझाव है कि आप उन्हें एक बग रिपोर्ट करें। तब तक, आप हमेशा meshlabCLI से चल सकते हैं , या इसके लिए अपनी स्वयं की .desktop फ़ाइल बना सकते हैं।


5

कुबंटु 18.04 रनिंग मेरे लिए समाधान है

export XDG_DATA_DIRS="$XDG_DATA_DIRS:/var/lib/snapd/desktop/"

जैसे कस्टम फ़ाइल snap-apps.shमें ~/.config/plasma-workspace/env। लेकिन यह केवल प्लाज्मा 5 पर लागू होता है और पहले से ही उबंटू 18.10 में तय किया जा सकता है।

जैसा कि dsager ने पहले ही अपने उत्तर में उल्लेख किया है कि वह /etc/profile.d/apps-bin-path.shकाम नहीं करता है।


2
यह पूरी तरह से काम किया - साथी Kubuntu उपयोगकर्ता।
जॉन

धन्यवाद! कुबंटू पर मेरे लिए समस्या का समाधान किया।
बजे Дмитрий Полянин

3

आपको snap run meshlabटर्मिनल से भागना होगा और इसे रोकना होगा, फिर आपको अपनी एप्लिकेशन सूची में मेशलैब दिखाई देगा


3

मैं किसी और की पोस्ट पर टिप्पणी नहीं कर सकता। हालाँकि, इसे dsager के उत्तर में जोड़ना है, जिसने मुझे Fedora 28 पर मदद की (जो जहाँ तक मैं बता सकता हूँ, Wayland का उपयोग करता है)

मैंने निम्नलिखित स्निप को अपने प्रत्येक फ़ाइल को / var / lib / Snapd / Desktop / Applications में लॉगिन पर लिंक करने के लिए अपने ~ / .bash_profile में जोड़ा। इसी तरह यह उन ऐप्स के लिंक को हटाने के लिए संशोधित किया जा सकता है, जो अब लाइन के लिए रास्तों पर स्विच करके मौजूद नहीं हैं और यदि लाइन फिर rm के साथ ln की जगह लेती है।

for i in /var/lib/snapd/desktop/applications/*.desktop; do
    if [ ! -f ~/.local/share/applications/${i##*/} ];then
            ln -s /var/lib/snapd/desktop/applications/${i##*/} ~/.local/share/applications/${i##*/};
    fi;
done

इसे पूरा करने के लिए शायद अलग-अलग तरीके हैं, लेकिन यह काम करता है।


1
का बेकार उपयोग lsfor in /var/lib/snapd/desktop/applications/*.desktop; do i="${i##*/}"; ...इसके बजाय उपयोग करें । इसे प्राप्त करने का एक छोटा तरीका होगा ln -st ~/.local/share/applications /var/lib/snapd/desktop/applications/*.desktop 2>/dev/null
डेविड फ़ॉस्टर 01

मुझे पता था कि आपके पहले उदाहरण को निष्पादित करने का एक तरीका था, हालांकि मैं $ {i ## * /} भाग को याद नहीं कर सकता था, जब मैं शुरू में यह था। मैं उस संस्करण को शामिल करने के लिए अपनी पोस्ट संपादित करूंगा। हालाँकि, आपका बाद वाला सुझाव यह जाँच नहीं करता है कि लिंक पहले से मौजूद है या नहीं, इस प्रकार बेकार कमांड को फिर से निष्पादित करना है। वास्तव में, मैं grep से बचने का एक तरीका खोजना चाहता था और निष्पादित करते समय प्रक्रियाओं की संख्या को कम करना चाहता था। आपके कमेंट के लिए धन्यवाद।
एरिक निकोनोविच

मेरा दूसरा सुझाव यह जाँचता है कि क्या लक्ष्य फ़ाइल पहले से मौजूद है और यदि ऐसा है, तो एक त्रुटि संदेश प्रिंट करता है ( /dev/nullऔर इस तरह दबा दिया जाता है)। यह कुछ भी "बेकार" नहीं करता है: यह एक बार कांटे और निष्पादित करता है और प्रत्येक मिलान फ़ाइल के लिए एक सिस्टम कॉल symlink(2)या symlinkat(2)करता है। यदि आप फ़ाइल प्रकार ( stat(2)) और फिर (सशर्त रूप से) कांटा और निष्पादित करने के लिए जाँच करने के लिए एक लूप का उपयोग करते हैं ln(1)जो symlink*(2)कि बहुत अधिक "बेकार" काम करता है।
डेविड फ़ॉस्टर 01

1

ब्लेंडर के साथ एक ही बात।

snap run blender

काम करता है, हालांकि समस्या को ठीक नहीं किया।

मैं नकल करना पड़ा blender.desktopसे /snap/blender/current/blender.desktopकरने के लिए /usr/share/applications(के साथ sudo) और फिर सब तय किया गया था: सूक्ति मेनू में ब्लेंडर शो और नॉटिलस सहयोगियों इसके साथ .blendफ़ाइलें।

लगता है कि मेरे लिए स्नैप और ग्नोम के बीच किसी तरह की दरार है। शायद जो हमें चाहिए वह एक तड़क-भड़क वाला गनोम है (या क्या यह एक जिम्नी स्नैप है; ^)।


1
नमस्ते, मैंने वही किया जो आपने बताया था लेकिन मैंने अब तक किए गए हर कार्यक्रम के लिए दो आइकन दिए हैं ... देखें i.imgur.com/aamlQJZ.png क्या आपके साथ भी ऐसा हुआ है?
Cirelli94

1

कॉपी अनुप्रयोगों से शॉर्टकट /var/lib/snapd/desktop/applications/के लिए/usr/share/applications/

उदाहरण: sudo cp /var/lib/snapd/desktop/applications/brave_brave.desktop /usr/share/applications/

मुझे गैलियमओएस 3.0 (जुबांटु-आधारित) पर ऐसा करना पड़ा


0

मैं उबंटू 18.04 पर इसी मुद्दे पर भाग गया। यह वेनलैंड के साथ एक समस्या लगती है। मेरे लिए इसका उपाय था कि मैं वेलैंड से Xorg तक वापस जाऊं।

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