Linux'ta LD_LIBRARY_PATH çevresel değişkeni nasıl ayarlanır


213

İlk komutu yürüttüm: export LD_LIBRARY_PATH=/usr/local/lib

Sonra açtı .bash_profiledosyayı: vi ~/.bash_profile. Bu dosyaya koydum:

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

Terminal kapatılıp yeniden başlatılırsa, yazarken echo $LD_LIBRARY_PATHsonuç görüntülenmez.

Yol kalıcı olarak nasıl ayarlanır?


9
Burada bariz bir şekilde işaret ... Eğer sadece ne yaptığını düzeltmek istiyorsanız, bir ekleyin $, örneğinexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH
Çerez

11
Sadece koşmak sudo ldconfigbundan sonra
Necktwi

bu aptalca olabilir ama değil mi $ source ~/.bash_profile? Bunu unutmaya meyilliyim. Ve sonra @ neckTwi dedi çalıştırmak ldconfig dedi
ashley

Yanıtlar:


208

Dağıtımınız hakkında daha fazla ayrıntı eklemelisiniz, örneğin Ubuntu altında bunu yapmanın doğru yolu , örneğin özel bir .confdosya eklemektir./etc/ld.so.conf.d

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

dosyanın içine sisteme eklemek istediğiniz tüm kitaplıkları içeren dizinin tam yolunu yazmanız gerekir, örneğin

/home/linux/myLocalLibs

dosyanın tam yolunu değil, yalnızca dizin yolunu eklemeyi unutmayın, bu yoldaki tüm kütüphaneler otomatik olarak dizine eklenir.

Kaydedin ve sudo ldconfigsistemi bu kütüphanelerle güncellemek için çalıştırın .


Dağıtımdan bahsetmediğim için üzgünüm. Fedora 16
singha

Bu çözümü Fedora için kullanabilirsiniz, Joachim Pileborg tarafından önerilen çözüm, bu kütüphanelerin görünümünü 1 belirli kullanıcıyla sınırlandırmaya karar verirseniz faydalıdır, eğer sistem genelinde bir lib tou çözümümü kullanmalısınız. Her şey ne aradığınıza bağlıdır.
user1824407

11
Bu gerçekten doğru yol mu? Yerel kütüphaneler oluşturan birden fazla kullanıcınız olduğunu ve her ikisini de /etc/ld.so.conf.d dosyasına eklediğinizi varsayalım. Artık A kullanıcısı, B kullanıcısının yerel kütüphanelerine bağlanabilir. İyi değil.
ergosys

/usr/local/libgenellikle zaten oradadır, bu nedenle herhangi bir dosyayı düzenlemenize gerek yoktur sudo ldconfig.
nyuszika7h

1
Garip hepinizle çalıştı, ancak export LD_LIBRARY_PATH ....yol çalışırken benim için işe yaramadı !
Accountant م

106

Önceki yolu koru, üzerine yazma:

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

~ / .Bashrc'nize ekleyebilirsiniz:

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

36

Ekle

LD_LIBRARY_PATH = "/ yol / sen / want1: / yol / sen / / 2 istiyoruz"

için /etc/environment

Ubuntu Belgelerine bakın .

DÜZELTME: Kendi tavsiyemi almalı ve belgeleri okumalıyım. Bunun LD_LIBRARY_PATH için geçerli olmadığını söylüyor: Ubuntu 9.04 Jaunty Jackalope olduğundan, LD_LIBRARY_PATH $ HOME / .profile, / etc / profile veya / etc / çevre dosyalarında ayarlanamaz. /Etc/ld.so.conf.d/ .conf yapılandırma dosyalarını kullanmalısınız . * Yani user1824407'nin yanıtı açıktır.


Vay canına, o sayfaya birkaç kez baktım ve bunu gözden kaçırdım. Tespit ettiğiniz ve dikkatimize sunduğunuz için teşekkür ederiz.
Michael Scheper

4
Ubuntu burada özel bir durum. Ubuntu'nun görüşü, tüm kullanıcıların aynı kitaplıkları istemesi ve her kitaplık için yalnızca bir yer olmasıdır (Launchpad hata no. 366728'deki tartışmayı okuyun). Ancak, çok kullanıcılı araştırma veya geliştirme sistemlerinde, her kullanıcının kendi kitaplık sürümlerine sahip olmasını istersiniz. Çoğu Linux dağıtımı buna izin verir ve yıllardır bunu yapar.
Joachim Wagner

9
PATH ve PKG_CONFIG_PATH'ı neden ayarlayabildiğimi anlamaya çalışırken 4 saat geçirdim, ancak LD_LIBRARY_PATH'i ayarlayamadım. Ben bile yapamam.
Mikhail Cheshkov

@JoachimWagner Evet, bu doğru ve neden conda ve / veya bioconda veya virtenv'in özel çevresel değişkenlerle belirli bir programı çağırmak için tercih edilen bir yöntem olduğu. Encased ortamları kullanarak, yanlışlıkla LD_LIBRARY yolunu ayarlamanın sistemik sorunları / sorunları olmayacaktır.
Andor Kiss

23

Dosya .bash_profileyalnızca giriş kabukları tarafından yürütülür. ~/.bashrcKoymanız veya oturumu kapatıp tekrar oturum açmanız gerekebilir .


Teşekkürler Joachim Pileborg. Sistemi yeniden başlattım ve şimdi yolu kalıcı olarak ayarlandı.
singha


17

Herhangi bir nedenle, hiç kimse bashrc'nin düzenleme sonrasında yeniden kaynaklanması gerektiğinden bahsetmedi. Oturumu kapatabilir ve tekrar oturum açabilirsiniz (yukarıda belirtildiği gibi): source ~/.bashrcveya : komutlarını da kullanabilirsiniz . ~/.bashrc.


14

Put export LD_LIBRARY_PATH=/usr/local/libin ~/.bashrc[script uç arasında herhangi geçersiz kılmaları önlemek için tercihen doğru, Varsayılan ~/.bashrcbirçok ile geliyorif-else ifadeleri]

Yeni bir terminal / konsole açtığınızda LD_LIBRARY_PATHyansıtılacağını belirtin


Dağıtımdan bahsetmediğim için üzgünüm. Fedora 16
singha

7
  1. Ana klasöre gidin ve .profile dosyasını düzenleyin
  2. Aşağıdaki satırı sonuna yerleştirin

    export LD_LIBRARY_PATH=<your path>

  3. Kaydet ve çık.

  4. Bu komutu yürütün

    sudo ldconfig


3

Mint 15 ila 17'de aşağıdakileri yaparım, ayrıca ubuntu sunucusu 12.04 ve üstü üzerinde çalışır:

sudo vi /etc/bash.bashrc 

en alta kaydırın ve ekleyin:

export LD_LIBRARY_PATH=.

Tüm kullanıcılara ortam değişkeni eklenir.


3

Özel bir komut dosyası eklemeyi deneyebilirsiniz demek myenv_vars.shde /etc/profile.d.

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

Bunu boş dosyaya ekleyin ve kaydedin.

export LD_LIBRARY_PATH=/usr/local/lib

Çıkış ve giriş, LD_LIBRARY_PATHkalıcı olarak ayarlanacak.


1
Müthiş cevap. Sistem başlatma sırasında her seferinde bir yolu dışa aktarmak ve fiziksel düzenleme / etc / bashrc'den çok daha güvenli bir şekilde dışa aktarmak için en iyi seçim
Joseph
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.