কীভাবে পরিবেশগত পরিবর্তনশীল LD_LIBRARY_PATH লিনাক্সে সেট করবেন


212

আমি প্রথম আদেশটি কার্যকর করেছি: export LD_LIBRARY_PATH=/usr/local/lib

তারপর আমি খুলেছেন .bash_profileফাইল: vi ~/.bash_profile। এই ফাইলটিতে, আমি লিখেছি:

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

তারপরে যদি টার্মিনালটি বন্ধ হয়ে আবার চালু হয়, টাইপিংয়ের echo $LD_LIBRARY_PATHকোনও ফলাফল হয় না।

স্থায়ীভাবে কীভাবে পথ নির্ধারণ করবেন?


9
এখানে এটি সুস্পষ্ট নির্দেশক ... আপনি শুধু আপনার কি ঠিক করতে চান তাহলে, একটি যোগ $, যেমনexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH
কুকি

11
কেবল তার sudo ldconfigপরে
দৌড়ান

এই নির্বোধ হতে পারে কিন্তু আপনি কি $ source ~/.bash_profile? আমি এটা ভুলে যেতে ঝোঁক। এবং তারপর মত @neckTwi বলেন চালানো ldconfig
অ্যাশলে

উত্তর:


208

আপনার বিতরণ সম্পর্কে আপনার আরও বিশদ যুক্ত করা উচিত, উদাহরণস্বরূপ উবুন্টুর অধীনে এটি করার সঠিক উপায়টি হল একটি কাস্টম .confফাইল যুক্ত করা /etc/ld.so.conf.d, উদাহরণস্বরূপ

sudo gedit /etc/ld.so.conf.d/randomLibs.conf

ফাইলটিতে আপনি যে ডিরেক্টরিতে সিস্টেমটিতে যুক্ত করতে চান এমন সমস্ত লাইব্রেরি রয়েছে এমন ডিরেক্টরিতে সম্পূর্ণ পথটি লেখার কথা রয়েছে

/home/linux/myLocalLibs

মনে রাখবেন দিরের জন্য কেবল পথটিই যুক্ত করা উচিত, ফাইলটির পুরো পথ নয়, সেই পথের অভ্যন্তরে সমস্ত লিবস স্বয়ংক্রিয়ভাবে সূচকযুক্ত হবে।

sudo ldconfigএই libs দিয়ে সিস্টেম আপডেট করতে সংরক্ষণ করুন এবং চালান ।


বিতরণ উল্লেখ না করার জন্য দুঃখিত। এর ফেডোরা 16
সিংহ

আপনি এই সমাধানটি ফেডোরার জন্য ব্যবহার করতে পারেন, জোয়াচিম পাইলবার্গের প্রস্তাবিত সমাধানটি কার্যকর যদি আপনি এই লিবসের দৃষ্টিভঙ্গি 1 নির্দিষ্ট ব্যবহারকারীর মধ্যে সীমাবদ্ধ করার সিদ্ধান্ত নেন তবে আপনি যদি সিস্টেমের প্রশস্ত লিবিব টু চাই তবে আমার সমাধানটি ব্যবহার করা উচিত। এটি সমস্ত কি আপনি যা খুঁজছেন তার উপর নির্ভর করে।
ব্যবহারকারী 1824407

11
এটা কি সত্যিই সঠিক উপায়? ধরুন আপনার একাধিক ব্যবহারকারী স্থানীয় গ্রন্থাগার তৈরি করছেন এবং আপনি তাদের উভয়কে /etc/ld.so.conf.d এ যুক্ত করেছেন। এখন ব্যবহারকারী এ ব্যবহারকারীর বি এর স্থানীয় লাইব্রেরিতে লিঙ্ক করতে পারে। ভাল না.
এরগোসিস

/usr/local/libসাধারণত ইতিমধ্যে সেখানে থাকে, সুতরাং কোনও ফাইল সম্পাদনা করার দরকার নেই, ঠিক sudo ldconfig
nyuszika7h

1
এটি আপনার সবার সাথে কাজ করে আশ্চর্যজনক, যদিও এটি আমার পক্ষে কাজ করে না, যখন export LD_LIBRARY_PATH ....পথে কাজ করে !!
হিসাবরক্ষক

105

পূর্বের পথটি রাখুন, এটিকে ওভাররাইট করবেন না:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/

আপনি এটি আপনার ~ / .Bashrc এ যুক্ত করতে পারেন:

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc

36

যোগ

LD_LIBRARY_PATH = "/ পথ / আপনি / want1: / পাথ / আপনি / চান / 2"

প্রতি /etc/environment

দেখুন উবুন্টু ডকুমেন্টেশন

সংশোধন: আমার নিজের পরামর্শ নেওয়া উচিত এবং ডকুমেন্টেশনটি আসলেই পড়া উচিত। এটি বলে যে এটি এলডি_লিবারি_পথের ক্ষেত্রে প্রযোজ্য নয়: যেহেতু উবুন্টু 9.04 জন্টি জ্যাকালোপ, এলডি_লিবিআরএইপিএটিএইচ $ হোম /। প্রোফাইল, / ইত্যাদি / প্রোফাইলে বা / ইত্যাদি / পরিবেশের ফাইলে সেট করা যায় না। আপনাকে অবশ্যই /etc/ld.so.conf.d/ .conf কনফিগারেশন ফাইলগুলি ব্যবহার করতে হবে * সুতরাং ব্যবহারকারী 1824407 এর উত্তর স্পট spot


বাহ, আমি সেই পৃষ্ঠাটি বেশ কয়েকবার দেখেছি এবং সেটিকে উপেক্ষা করেছি। এটিকে চিহ্নিত করার এবং এটি আমাদের নজরে আনার জন্য ধন্যবাদ।
মাইকেল শেপার

4
উবুন্টু এখানে একটি বিশেষ মামলা। উবুন্টুর দৃষ্টিভঙ্গি হল যে সমস্ত ব্যবহারকারী একই লাইব্রেরি চান এবং প্রতিটি লাইব্রেরির জন্য একটি করে জায়গা থাকে (লঞ্চপ্যাড বাগ # 366728 তে আলোচনাটি পড়ুন)। তবে একাধিক ব্যবহারকারীর গবেষণা বা বিকাশ সিস্টেমে আপনি প্রতিটি ব্যবহারকারীকে তাদের লাইব্রেরির নিজস্ব সংস্করণ রাখতে সক্ষম হতে চান। বেশিরভাগ লিনাক্স বিতরণ এটির অনুমতি দেয় এবং বহু বছর ধরে এটি করে for
জোচিম ওয়াগনার

9
আমি কেন PATH এবং PKG_CONFIG_PATH সেট করতে পারি, তবে এলডি_লিবারি_প্যাথ নয়, তা নির্ধারণের জন্য 4 ঘন্টা চেষ্টা করে। আমিও পারি না।
মিখাইল চেশকভ

@ জোয়াচিম ওয়াগনার হ্যাঁ, এটি সঠিক, এবং কেন কনডা এবং / অথবা বায়োকন্ডা বা ভার্টেনভ এখন বিশেষ পরিবেশগত ভেরিয়েবল সহ কোনও নির্দিষ্ট প্রোগ্রামের জন্য প্রার্থনা করার ক্ষেত্রে পছন্দসই পদ্ধতি। আবদ্ধ পরিবেশ ব্যবহার করে, অজান্তেই LD_LIBRARY পাথ সেট করার পদ্ধতিগত সমস্যা / সমস্যা থাকবে না।
আন্দোর কিস

23

ফাইলটি কেবল .bash_profileলগইন শেল দ্বারা সম্পাদিত হয়। আপনার এটি লাগাতে হতে পারে ~/.bashrc, বা কেবল লগআউট করে আবার লগইন করতে হবে।


আপনাকে জোছিম পাইলবার্গ ধন্যবাদ। আমি সিস্টেমটি পুনরায় বুট করেছি এবং এখন এর পথ স্থায়ীভাবে সেট করা আছে।
সিংহ

21

বিকল্পভাবে আপনি নির্দিষ্ট লাইব্রেরি ডির সাথে প্রোগ্রামটি চালাতে পারেন:

/lib/ld-linux.so.2 --library-path PATH EXECUTABLE

এখানে আরও পড়ুন


2
আমাকেও সহায়তা করেছে
spt025

17

কোনও কারণে বাশার্ক সম্পাদনার পরে পুনরায় উত্সাহিত করা দরকার এই বিষয়টি কেউ উল্লেখ করেনি। হয় আপনি লগ আউট করতে পারেন এবং (উপরে উল্লিখিত মত) পুনরায় লগ-ইন কিন্তু আপনি কমান্ড ব্যবহার করতে পারেন: source ~/.bashrcবা . ~/.bashrc


14

রাখুন export LD_LIBRARY_PATH=/usr/local/libমধ্যে ~/.bashrc[স্ক্রিপ্ট শেষ মধ্যে যে কোন ওভাররাইড এড়াতে বাঞ্ছনীয় প্রতি, ডিফল্ট ~/.bashrcঅনেক দিয়ে আসে if-elseবিবৃতি]

পোস্ট করুন যে যখনই আপনি একটি নতুন টার্মিনাল / কনসোল খুলবেন, LD_LIBRARY_PATHপ্রতিফলিত হবে


বিতরণ উল্লেখ না করার জন্য দুঃখিত। এর ফেডোরা 16
সিংহ

7
  1. হোম ফোল্ডারে যান এবং সম্পাদনা করুন। প্রোফাইল
  2. নিম্নলিখিত লাইনটি শেষে রাখুন

    export LD_LIBRARY_PATH=<your path>

  3. সংরক্ষণ এবং ত্যাগ.

  4. এই আদেশটি কার্যকর করুন

    sudo ldconfig


3

আমি পুদিনা 15 থেকে 17 এর মধ্যে নিম্নলিখিতগুলি করি, এটি ওবুন্টু সার্ভার 12.04 এবং তারও উপরে কাজ করে:

sudo vi /etc/bash.bashrc 

নীচে স্ক্রোল করুন এবং যুক্ত করুন:

export LD_LIBRARY_PATH=.

সমস্ত ব্যবহারকারীর পরিবেশ পরিবর্তনশীল যুক্ত করা আছে।


3

আপনি একটি কাস্টম স্ক্রিপ্ট যোগ করার চেষ্টা করে দেখতে পারেন, বলতে myenv_vars.shমধ্যে /etc/profile.d

cd /etc/profile.d
sudo touch myenv_vars.sh
sudo gedit myenv_vars.sh

এটি খালি ফাইলটিতে যুক্ত করুন এবং এটি সংরক্ষণ করুন।

export LD_LIBRARY_PATH=/usr/local/lib

লগআউট এবং লগইন LD_LIBRARY_PATHস্থায়ীভাবে সেট করা হবে।


1
দুর্দান্ত উত্তর। সিস্টেম ইনিশিয়েশন চলাকালীন প্রতিবার একটি পাথ রফতানি করার জন্য আমার পক্ষে সেরা পছন্দ এবং শারীরিকভাবে সম্পাদনা / ইত্যাদি / বাশার্কের চেয়ে অনেক বেশি নিরাপদ
জোসেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.