मैं एक सांबा शेयर में ओएस एक्स संसाधन कांटे को कहीं और स्टोर कर सकता हूं * डॉटबार फाइलों की तुलना में कहीं और *?


15

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

वे मूल रूप से ओएस एक्स के एचएफएस + फाइलसिस्टम द्वारा समर्थित हैं, लेकिन जब भी ओएस एक्स किसी अन्य फाइल सिस्टम को मापता है, चाहे स्थानीय (एफएटी 32) या रिमोट (एनएफएस, एसएमबी) उन्हें तथाकथित "डॉटबार" फाइलों में संग्रहीत किया जाता है: नियमित फाइल के लिए संसाधन कांटा name.extहै। एक और नियमित लेकिन छुपी हुई फ़ाइल में संग्रहीत ._name.ext। (वे .DS_Storeफ़ाइलों के साथ भ्रमित होने के लिए नहीं हैं , जो एक निर्देशिका के दृश्य सेटिंग्स को संग्रहीत करते हैं, जैसे कि आइकन बनाम स्तंभ दृश्य, या इसकी विंडो की स्थिति।)

डॉटबार ._फ़ाइलों के साथ समस्या यह है कि वे वास्तविक नियमित फ़ाइलें हैं, लक्ष्य फ़ाइल सिस्टम में, मूल फ़ाइल के समान एक्सटेंशन के साथ, इसलिए कई तरीकों से कहर बरपा रहा है। उदाहरण के लिए, चींटी और मावेन ._MyClass.javaसंकलन के लिए एक और जावा फ़ाइल के रूप में देखेंगे ।

मैं देखता हूं कि OS X को SMB नाम की धाराओं में संसाधन कांटे स्टोर करने के लिए कॉन्फ़िगर किया जा सकता है और Samba को POSIX विस्तारित विशेषताओं में स्ट्रीम नाम से स्टोर करने के लिए कॉन्फ़िगर किया जा सकता है या, वैकल्पिक रूप से, डिपो डायरेक्टरी में कहीं और

दोनों समाधान लक्ष्य फ़ाइल सिस्टम को प्रदूषित करने वाली डॉटबार फ़ाइलों की समस्या को हल करेंगे, लेकिन मुझे काम करने के लिए नहीं मिल सकता है।

 
Xattr

पहले मैंने xattr के साथ प्रयास किया:

vfs objects = streams_xattr
kernel oplocks = no

बाद वाला विकल्प इस बग के कारण है । मैंने ओएस एक्स को इसे साझा करने से पहले, शेयर के रूट में ऐसा करके, इसका उपयोग करने के लिए कहा था:

touch .com.apple.smb.streams.on

लेकिन जब मैंने फाइंडर के साथ एक फाइल को कॉपी करने की कोशिश की, तो मुझे यह त्रुटि मिली:

खोजक ऑपरेशन को पूरा नहीं कर सकता क्योंकि "hello.java" में कुछ डेटा को पढ़ा या लिखा नहीं जा सकता है।
(त्रुटि कोड -36)

 
डिपो

फिर मैंने डिपो से कोशिश की:

vfs objects = streams_depot

.com.apple.smb.streams.onशेयर की जड़ में जा रहा है। फाइंडर के साथ उसी फाइल को कॉपी करने की कोशिश की जा रही है, मुझे एक और त्रुटि मिली:

ऑपरेशन पूरा नहीं हो सकता है क्योंकि एक अप्रत्याशित त्रुटि हुई
(त्रुटि कोड -50)

 
मैं ओएस एक्स को इन दोनों विकल्पों में से किसी एक के साथ कैसे काम कर सकता हूं? मेरा उद्देश्य उन गंदे लोगों ._को साझा निर्देशिकाओं से बाहर निकालना है।

मैंने केवल dotbar फ़ाइलों को वीटो करने की कोशिश की:

veto files = /._*/
delete veto files = yes

लेकिन इसके कारण कुछ एप्लिकेशन विफल हो जाते हैं, उदाहरण के लिए मर्क्यूरियल जब एक माउंटेड एसएमबी शेयर पर ओएस एक्स से चलाया जाता है

मैं क्लाइंट के रूप में OS X 10.9.5 का उपयोग कर रहा हूं; सर्वर के रूप में डेबियन व्हीजी से सांबा 3.6.6।

संपादित करें: यहां मेरा विन्यास अनुरोध के अनुसार है:

[global]
    security = user
    invalid users = root
    workgroup = COMPANY_NAME
    encrypt passwords = true
    panic action = /usr/share/samba/panic-action %d
    syslog = yes
    syslog only = yes

    # PERFORMANCE TUNING
    socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
    read raw = true
    write raw = true
    use sendfile = true
    min receivefile size = 16384
    aio read size = 16384
    aio write size = 16384
    max xmit = 131072
    getwd cache = true

    # DEFAULT OPTIONS FOR ALL SHARES
    writeable = true
    force group = company_group

    create mask = 664
    security mask = 664
    force create mode = 664
    force security mode = 664

    directory mask = 2775
    directory security mask = 2775
    force directory mode = 2775
    force directory security mode = 2775

    # solve problem where OS X clients remove mode 0100
    map archive = no

[homes]
    browseable = no

क्या आपने सत्र को unix extensionsनिर्देश में बदलने की कोशिश की है कि क्या [global]आपका मामला हल होता है? क्या आप testparmकमांड से आउटपुट के साथ अपने प्रश्न को अपडेट कर सकते हैं ?
fgbreel

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

हाँ, समझ में नहीं आता :(
fgbreel

जवाबों:


2

ऐसा लगता है कि आप vfs_streams_xattr VFS मॉड्यूल के साथ स्टैक्ड नए vfs_fruit मॉड्यूल के साथ ऐसा करने में सक्षम हो सकते हैं ।

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

हालाँकि , सांबा विकी के अनुसार , यह सांबा 4.2 में एक नई सुविधा है, इसलिए आपको अपग्रेड करने की आवश्यकता है। (अभी के अनुसार, डेबियन सिड [प्रायोगिक] के पास अभी तक 4.2 नहीं है।)

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

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


0

मुझे नहीं पता कि यह देशी मैक वरीयताओं के साथ संभव है, लेकिन आप उस समस्या से सहायता के लिए एसेप्सिस जैसे उपकरण का उपयोग कर सकते हैं । यह सभी मैक ड्रापिंग को अपने फोल्डर में ले जाएगा।


पिछली बार जब मैंने जाँच की थी, तो Apspsis केवल .DS_Storeफाइलों को हटाती है, न कि "dotbar" ._*फाइलों को, जो नेटवर्क शेयरों में सबसे अधिक समस्या पैदा करती हैं
Tobia

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

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