मुझे 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
और ओपन / क्लोज / पाथनाम सामान को फाइल करता है, अन्यथा यह futex
X11 के लिए रीड / राइट की बाढ़ होगी )।
/usr/local/bin
नहीं डाला? यानी फ़ायरफ़ॉक्स ने आपकी खोज की$PATH
और संस्करण को खोजा/usr/bin
, या क्या यह (या आपका xdg- खुला सामान) हार्ड-कोड है/usr/bin/nautilus
? / Usr / स्थानीय में कुछ का अपना संस्करण स्थापित करना सामान्य रूप से काम करता है।