स्नैप्स एक्सेस को / somedir को कैसे दें


20

मैं सिर्फ स्नैप के साथ अपने पैरों को गीला कर रहा हूं। मैंने vlc इंस्टॉल कर लिया है और इसका उपयोग करने का प्रयास करना चाहता हूं। मेरा सारा मीडिया /storeएनएफएस माउंट के नीचे स्थापित है । और स्नैप उस निर्देशिका तक पहुंच की अनुमति नहीं देते हैं।

Googling के बाद मुझे यह समझाया गया है कि मैं के तहत फ़ाइलें एक्सेस कर सकते आए हैं /home/peterके लिए :homeइंटरफ़ेस और /mediaके लिए :removable-mediaइंटरफेस।

लेकिन मैं वास्तव में की तरह /storeहै और नहीं है कि होने के लिए बदलना चाहते हैं /media/storeया /home/peter/storeया से कुछ और /store

क्या मेरे स्नैप्स (या शायद वीएलसी) तक पहुंचने की अनुमति देने के लिए स्नैप प्राप्त करने का एक तरीका है /store, इसलिए स्नैप मेरे नामकरण सम्मेलनों के अनुरूप है या क्या मैं स्नैप की वरीयताओं को बदलने के लिए मजबूर हूं?

यह बहुत ही अनम्य लगता है, और मुझे उम्मीद है कि कुछ ऐसा है जो मैंने याद किया है।


1
आप स्नैप हटाने की कोशिश कर सकते हैं ( sudo snap remove vlc) तो क्लासिक विकल्प के साथ फिर से स्थापित करें। मदद कर सकते हैं, नहीं कर सकते हैं .. ( sudo snap install vlc --classic)
doug

1
धन्यवाद। मैंने कोशिश की --classicऔर --devmodeन ही काम किया। लेकिन मैं यह भी स्पष्ट रूप से उपयोग करना चाहता हूं, /storeलेकिन सब कुछ पसंद नहीं है/supersecret
पीटर वी। मॉर्क

2
क्या स्नैप के लिए कोई टिकट / बग / सुविधा-अनुरोध खुला है? मुझे वह सुविधा भी चाहिए!
क्राव्रीमिर

1
मुझे स्नैप्स के लिए वास्तविक नफरत मिल रही है।
स्टीफन बोस्टन

जवाबों:


9

मेरे आश्चर्य के लिए, यह वास्तव में ऐसा लगता है जैसे /homeहार्डकोड किया गया है। माउंट- support.c में शामिल हैं:

    const struct sc_mount mounts[] = {
        {"/dev"},   // because it contains devices on host OS
        {"/etc"},   // because that's where /etc/resolv.conf lives, perhaps a bad idea
        {"/home"},  // to support /home/*/snap and home interface
    ...

वाह। जो मुझे चकित करता है। लेकिन अब यह आपके लिए है।

संपादित करें: लॉन्चपैड समस्या 1643706 भी देखें


1
अरे, स्नैप डेवलपर यहां उस कोड के लिए जिम्मेदार है। अपने विस्मय के लिए कि वास्तव में सही काम करना है। हम होस्ट फ़ाइल सिस्टम और किसी भी यादृच्छिक निर्देशिका को शामिल नहीं कर सकते हैं। जब आप किसी अन्य व्यक्ति का उपयोग कर सकते हैं / स्टोर कर सकते हैं, तो वह / स्टैश या / जो भी उपयोग कर सकता है और उस काम को सामान्य रूप से करने का कोई तरीका नहीं है। मेरी सिफारिश है कि आप अपने मीडिया को अपनी इच्छानुसार उस स्थान पर माउंट करें, जहां / घर / ... या / मीडिया में। फिर यह मौजूदा प्रणालियों के अंतर्गत आएगा जो उस डेटा का प्रबंधन करते हैं और चीजों को सही तरीके से काम करना चाहिए।
ज़िग्मंट क्रिनिकी

@ZygmuntKrynicki या under / mnt, यदि हटाने योग्य-मीडिया इंटरफ़ेस को स्नैप के लिए जोड़ा गया है।
जर्नो

5
@ZygmuntKrynicki मैं भी चकित हूं। डिफ़ॉल्ट माउंट बिंदु को कॉन्फ़िगर फ़ाइल के माध्यम से कॉन्फ़िगर किया जाना चाहिए और लागू नहीं किया जाना चाहिए।
9

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

1

तो ऊपर मेरे मिनी-उत्तर पर विस्तार करने के लिए, ऐसा करने का कोई तरीका नहीं है जो सामान्य, सुरक्षित और ध्वनि है। मुझे पता है कि हर कोई अपने फाइल सिस्टम को कस्टमाइज़ करना पसंद करता है लेकिन इसकी कुछ कीमत होती है और यह उनमें से एक है।

आखिरकार, XDG पोर्टल्स पर काम के माध्यम से, कुछ अनुप्रयोगों (विशेष रूप से ग्राफिकल एप्लिकेशन) को मनमाने स्थानों में फाइलों तक पहुंच मिल सकती है, अगर iff ने हाल ही में शुरू किए गए GTK APIs में से कुछ का उपयोग किया है। यह होगा, जब कारावास के तहत चल रहा है, एक विश्वसनीय सहायक तक पहुंचता है, एक फ़ाइल पिकर की तरह दिखने वाले विश्वसनीय यूआई को पॉप अप करें, फ़ाइल (जो भी स्थान पर) को चलाने के लिए एक विशेष FUSE फाइल सिस्टम से बात करें / रन / में एक विशेष चीज के रूप में। .. कहीं आवेदन देखता है और चीजें ठीक हो सकती हैं।

इसे मीडिया खिलाड़ियों या वर्ड एडिटर जैसे फाइल-पिकर फ्रेंडली चीजों के लिए बनाया गया है। आपका लिनक्स ट्री जिस पर होस्ट किया गया है /codezवह इतनी अच्छी तरह से काम नहीं करेगा।


2
हाय ज़िग्मंट, जवाब देने के लिए धन्यवाद। मेरा विस्मय खड़ा है। आप कहते हैं: "मुझे पता है कि हर कोई अपने फाइल सिस्टम को अनुकूलित करना पसंद करता है, लेकिन इसकी कुछ लागत होती है और यह उनमें से एक है।" बस इतना मैं समझता हूं: आप महसूस करते हैं लेकिन इस बात को नजरअंदाज करना चुनते हैं कि यह एक आम बात है कि क्या करना चाहते हैं? मैं पिछले 15 वर्षों में इस नामकरण सम्मेलन के लिए किसी अन्य लागत से अवगत नहीं हूं।
पीटर वी। मॉर्क

3
वहाँ किसी भी कारण है कि एक तरह की एक पंक्ति नहीं डाल सकता है extradirs=/store:/other/locationया कुछ में /etc/snapd.confया /etc/snapd/conf.d/vlc.conf। बस वहाँ से बाहर अन्य लिनक्स अनुप्रयोगों के टन की तरह। यह उदाहरण के लिए ठीक काम करने के लिए लगता है डॉकर। यह ऐसा है जैसे अपाचे हार्ड कोड के लिए थे DocumentRoot /var/www
पीटर वी। मॉर्क

1
हालाँकि, मैं यहाँ ज़िग्मंट लिखने के लिए आपके समय की सराहना करता हूँ। धन्यवाद।
पीटर वी। मॉर्क

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

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

1

लक्ष्य निर्देशिका को बढ़ते हुए/home/*/snap/ एक विकल्प के रूप में उल्लिखित किया जाता है; एक साधारण बाँध माउंट मेरे लिए काम नहीं करता था, न ही एक हार्डलिंक, या प्रस्तावित स्नैप निर्देशिका में या तो लक्ष्य फ़ाइलों या निर्देशिकाओं का एक सिमिलिंक, या उसके बाद कोई उपनिर्देशिका। यह सीमा एक /home/*/निर्देशिका के बाहर मौजूद लक्ष्य फ़ाइलों के कारण हो सकती है , मैंने /home/*/उपसर्ग ग्लोब के भीतर फाइलों के mounts / हार्ड / सिम्लिंक्स का परीक्षण नहीं किया ।

हालाँकि, एक वर्कअराउंड: एक पूर्ण फ़ाइल कॉपी में /home/<myuser>/snap/<appname>/<somenewdirectory>मेरे लिए काम किया। पूर्ण डेटासेट प्रतियां बनाए रखना मेरे लिए अभी तक संभव नहीं था, लेकिन इस तरह की बाधा से निपटने में मदद करने के लिए बहुत सारे उपकरण हैं; स्नैप का उपयोग करने से पहले एक मैनुअल पुनरावर्ती कॉपी, और संशोधित फ़ाइलों की प्रतिलिपि बनाने के बाद एक विकल्प है यदि आपका डेटासेट छोटा है या परमाणु भी है

कुछ फ़ाइल कॉपी करने वाली उपयोगिताओं के नाम के लिए जो आपकी मदद कर सकती हैं:

  • cp --verbose --archive --recursive /somedir ~/snap/somedir, और स्रोत / लक्ष्य इसके विपरीत
  • tar -C / -c somedir | tar -C ~/snap/ -xv एक टार आधारित फाइल कॉपी उदाहरण है
  • rsync --archive /somedir ~/snap/somedir, rsync लोकप्रिय है और इसमें कई आवरण / एक्सटेंशन हैं

  • किसी भी फाइल आधारित बैकअप यूटिलिटी (चित्रमय उदाहरण :)grsync को प्रयोग करने योग्य होना चाहिए क्योंकि संपूर्ण लक्ष्य डेटासेट को आगे और पीछे कॉपी करना है।

  • git क्लोन, संभवतः, हालांकि स्थानीय क्लोन डिफ़ॉल्ट रूप से हार्डलिंक का उपयोग करते हैं, इसलिए यदि आप एक स्नैप में फाइल सिस्टम io को प्रबंधित करने के लिए git का उपयोग कर रहे हैं, तो इस संभावना से सावधान रहें कि क्लोन समय पर हार्ड लिंक को अक्षम किए बिना, वह git क्लैप स्नैप के लिए अप्राप्य हो सकता है।


1
यह एनएफएस-माउंटेड मल्टी-टेराबाइट एनएएस ड्राइव के आम उपयोग के मामले में काम नहीं करेगा।
पीटर वी। मॉर्क

1

मैं एक टिप्पणी पोस्ट नहीं कर सकता क्योंकि मेरे पास पर्याप्त प्रतिष्ठा नहीं है, लेकिन मैं एक उत्तर पोस्ट कर सकता हूं ..?

वैसे भी, यह कोई मूल समस्या नहीं है, लेकिन अगर मेरे जैसा कोई और व्यक्ति इस बात की तलाश में है कि स्नैप को मीडिया / एक्सेस कैसे दिया जाए (उदाहरण के लिए डार्कटेबल का उपयोग करना, जो मूल रूप से इसके बिना बेकार है) तो आप इसे कर सकते हैं या तो स्नैप-स्टोर इंटरफ़ेस के माध्यम से, या कमांड लाइन पर अपने स्नैप ऐप में हटाने योग्य-मीडिया 'प्लग' जोड़कर। कुछ डॉक्स यहां: https://snapcraft.io/docs/interface-management


1
नमस्कार और पूछें उबंटू पर आपका स्वागत है! लिंक केवल उत्तर हतोत्साहित किया जाता है क्योंकि वे भविष्य में लिंक समाप्त होने पर अप्रचलित हो सकते हैं। क्या मैं आपको अपनी पोस्ट में कुछ विवरण जोड़ने के लिए सुझाव दूंगा (उदाहरण के लिए चरणों का सारांश / उपयोग करने के लिए प्रशंसा)?
फ्लोट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.