मुझे Nautilus के साथ एक समस्या का सामना करना पड़ा, जिसके लिए मुझे स्रोत कोड डाउनलोड करने, कुछ बदलाव करने और इसे अपने दम पर संकलित करने के अलावा कोई हल नहीं मिला। तो अब मेरे पास नौटिलस के दो संस्करण हैं, रिपॉजिटरी से आधिकारिक संस्करण और कुछ बदलावों के साथ मेरा। मैं दोनों को रखना चाहूंगा।
एप्लिकेशन के भीतर से Nautilus शुरू करते समय Nautilus के अपने संकलित संस्करण का उपयोग करने के लिए एप्लिकेशन को बताने का एक अच्छा तरीका क्या होगा? (उदाहरण के लिए फ़ायरफ़ॉक्स के साथ डाउनलोड फ़ोल्डर खोलना)
मुझे पता चला कि फ़ायरफ़ॉक्स कॉल करता है /usr/bin/nautilusतो मैं इसे सिंपलिंक के साथ अपने कार्यक्रम में बदल सकता हूं। हालाँकि, मेरा मानना है कि जैसे ही मैं Nautilus के लिए एक अद्यतन स्थापित करता हूं, यह सिम्क्लिन अधिलेखित हो जाएगा। क्या कुछ और है जो मैं कर सकता था?
/usr/bin/nautilusलगता है कि यह किसी भी तरह हार्ड-कोडित है। अगर इसे हटा दिया जाता है तो फ़ायरफ़ॉक्स कुछ भी नहीं करता है जब मैं डाउनलोड फ़ोल्डर को खोलने की कोशिश करता हूं, हालांकि मेरे खुद के संस्करण के लिए एक नाभि है /usr/local/bin। मेरा $PATHचर है/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
strace -f -efile,execve -o firefox_syscalls.txt firefoxदेखने के लिए दौड़ सकते हैं कि एफएफ क्या करता है। यदि आप लॉग के लिए खोज करते हैं nautilus, तो वह आपको कुछ दिखा सकता है। (जो -eसिस्टम कॉल को फ़िल्टर करता है execveऔर ओपन / क्लोज / पाथनाम सामान को फाइल करता है, अन्यथा यह futexX11 के लिए रीड / राइट की बाढ़ होगी )।
/usr/local/binनहीं डाला? यानी फ़ायरफ़ॉक्स ने आपकी खोज की$PATHऔर संस्करण को खोजा/usr/bin, या क्या यह (या आपका xdg- खुला सामान) हार्ड-कोड है/usr/bin/nautilus? / Usr / स्थानीय में कुछ का अपना संस्करण स्थापित करना सामान्य रूप से काम करता है।