Linux中應用程式運行庫錯誤問題的一種解決方案

來源:互聯網
上載者:User

眾所周知,Linux中軟體運行時都依賴於特定的庫,有些軟體甚至只能與某種庫的特定版本配合才能運行。但各種不同的庫和同種庫的不同版本間常存在互斥關係,不能在系統中共存。這給很多依賴特定庫的軟體,特別是一些閉源軟體的運行造成種種困難。

主要困難就是如何在滿足軟體依賴庫的同時又不與系統中其它庫相衝突?

一種顯然的解決方案就是為軟體指定其私人庫,這樣不同的庫就各行其事互不干擾了。

現在問題變成如何為軟體指定運行庫?

Google發現可通過指定LD_LIBRARY_PATH環境變數來指定。望文知義,LD_LIBRARY_PATH的字面意思就是“載入庫的路徑”,也就是用來指定載入時庫的路徑,這個與PATH環境變數非常類似。所以只要為軟體佈建好LD_LIBRARY_PATH就可以為軟體指定其所需的私人庫了。

具體設定時,可將軟體所需的庫檔案下載到軟體自己的目錄中,再寫個指令碼設定LD_LIBRARY_PATH將私人庫包含進來就可以了。

舉個例子,在Debian Wheezy上運行時utorrent需要libssl.so.0.9.8,但它與源中的libssl.so.1.0.0互斥,不能同時安裝,並且libssl.so.1.0.0不能卸載,因為系統中很多軟體都依賴於libssl.so.1.0.0。這時就可以為utorrent下載一個單獨的libssl.so.0.9.8,放在其私人目錄中,例如utorrent/lib下,再在utorrent/中寫個指令碼,內容如

#! /bin/shLD_LIBRARY_PATH=./lib ./utserver

即可通過執行utorrent指令碼來運行utorrent軟體了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.