प्रतीकात्मक लिंक: ऐसी कोई फ़ाइल या निर्देशिका नहीं


18

मैंने "/ Opt / bladir / bla" से "bla" फ़ाइल में एक प्रतीकात्मक लिंक बनाया। तो "bla" अब "/ usr / bin / bla" में है। लेकिन अगर मैं टर्मिनल पर "bla" कॉल करना चाहता हूं, तो ऐसी कोई फ़ाइल या निर्देशिका त्रुटि नहीं आती है। मैंने "/ usr / bin / bla" पर देखा और फ़ाइल "/ opt / bladir / bla" पर सही ढंग से लिंक हो रही है।

क्या त्रुटि हो सकती है?

PS यहाँ मेरा टर्मिनल "प्रविष्टि" है: sudo ln -s /opt/bladir/bla bla

धन्यवाद!

बेनाम: समस्या हल हो गई। फ़ीचर सूची के अनुसार, 12.04 में मल्टीकार सपोर्ट होना चाहिए ... 'चाहिए'। मुझे सिनैप्टिक से ia32-libs मिला और अब प्रोग्राम ठीक-ठाक चलता है। जैसा कि दिखता है, मेरे प्रतीकात्मक लिंक जहां सही हैं।

सभी उत्तर के लिए धन्यवाद!

जवाबों:


13

EDIT: नीचे दिया गया समाधान काम नहीं करता है। यह स्पष्ट है कि प्रतीकात्मक लिंक टूट गया है, क्योंकि file -Lप्रतीकात्मक लिंक / usr / bin / bla नहीं खोल सकते। इस मामले में, निम्नलिखित करें:

sudo ln -sf /opt/bladir/bla /usr/bin/bla

पूर्ण रास्तों का उपयोग करना (-f पिछले प्रतीकात्मक लिंक को अधिलेखित करने के लिए बाध्य करना है, अगर एक है)।

हम्म। मुझे लगता है कि कार्यक्रम "bla" उन चीजों की तलाश में हो सकता है जो / opt / bladir में स्थापित हैं और उन्हें नहीं पा सकते हैं। उदाहरण के लिए, यह जावा निष्पादन योग्य के आसपास एक शेल स्क्रिप्ट आवरण हो सकता है, वर्तमान निर्देशिका के सापेक्ष पथ पर: लेकिन आपकी वर्तमान निर्देशिका / usr / bin / है, और / opt / bladir / नहीं है।

यदि निम्नलिखित काम करता है

file -L /usr/bin/bla

... तो यह निश्चित रूप से आपके प्रतीकात्मक लिंक के साथ कोई समस्या नहीं है।

जांचें कि क्या "bla" एक शेल स्क्रिप्ट है जिसे आप संशोधित कर सकते हैं, अंदर देख सकते हैं - शायद आपको समस्या मिल जाएगी। संभवतया, आपके PATH में / opt / bladir को जोड़ना एक बेहतर समाधान होगा।


दिए गए आदेश कहते हैं: ERROR: '/ usr / bin / bla' नहीं खोल सकता। मैं "bla" के अंदर एक नज़र नहीं रख सकता, यह एक कार्यक्रम है, न केवल एक शेल स्क्रिप्ट।
सेह

ठीक है, पूर्ण पथ के साथ प्रतीकात्मक लिंक को फिर से करें।
जनवरी

मुझे खुद से पहले यह विचार आया था। यहां तक ​​कि पुराने लिंक को जोड़ने और नए बनाने के साथ, त्रुटि अभी भी प्रकट होती है। -एसएफ ने भी काम नहीं किया।
सेह

ठीक। इन कमांड के सटीक आउटपुट को प्लिस चलाते हैं ls -l /usr/bin/blaऔर ls -l /opt/bladir/blaरिपोर्ट करते हैं।
जनवरी

@January अगर आप काम file -L नहीं करते हैं तो आप किस तरह की कार्रवाई की सिफारिश करेंगे ?
dbliss

0

अक्सर इस प्रकार का त्रुटि संदेश दिखाया जाता है, यदि आपके पास निष्पादन बिट सक्षम नहीं है। जांचें कि क्या मुख्य फाइल के साथ-साथ लिंक को भी निष्पादन की अनुमति दी गई है।

मुझे संदेह है कि आपके /optएक अलग विभाजन से माउंट किया जा सकता है और यह execमाउंट विकल्प के साथ माउंट नहीं किया गया है


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