關於 dev lib 手動安裝的問題 - Linux

Table of Contents

※ [本文轉錄自 LinuxDev 看板 #1X55DFly ]

作者: gowrite (gowrite) 看板: LinuxDev
標題: [問題] 關於 dev lib 手動安裝的問題
時間: Thu Aug 12 06:46:37 2021



各位好,

最近在學習用一些套件跟軟體,在安裝階段想到了一個問題,

就是我們在用這些別人寫好的軟體的時候,

常常需要安裝一些 libxxxx-dev 之類的 dev library,

因為這些軟體當初在開發期間也有用到這些程式,


這時候通常就會使用 apt 的方式來安裝這些 library

在 apt 把這些 library 安裝在系統之後,

我想知道這些 library 主要是安裝在哪?並且安裝了什麼東西?


這時候我就有了一些疑問


舉例:

系統告訴我,要編譯 gnupg (gpg) 時,我需要安裝 libassuan library,

所以我找了 apt-get 上面的 libassan-dev 這個 library,

安裝之後,

我發現他在我系統的

/usr/bin/ 裝了 config 檔

/usr/include 裝了 header

/usr/lib/x86_64-linux-gnu 裝了 靜態檔、動態檔

/usr/lib/x86_64-linux-pkgconfig 裝了 pkg-config 檔

/usr/share 裡面裝了 m4 檔,文件檔,一些 copyright 文件,及 manual



我想問的是,如果今天沒有 apt-get 幫我們自動安裝這些 library 的話,

我們自己下載 libassuan 回來之後,

要怎麼把什麼東西放在哪個目錄下?



還是說,基本上沒辦法知道,

只能使用 autogen.sh,然後 configure 之後,

就是直接用 make 讓他自己去塞檔案到系統裡面?



我們從 apt-get install 的 libxxx-dev,

跟我們自己下載 tar 檔案,直接 make 安裝的結果,

是一樣的嗎?


這邊請高手、前輩們解惑一下,

謝謝


--

All Comments

Gilbert avatarGilbert2021-08-14
研究一下 GNU autotools 到底是在幹什麼事。
Quanna avatarQuanna2021-08-16
cc/ld如果沒有指定header/library的path,會自動去系統內
Ophelia avatarOphelia2021-08-18
建的header/lib目錄搜尋,所以只要掌握放內建搜尋目錄或自
行指定搜尋目錄即可正常編譯/連結這個精神,你可以選擇看
Edith avatarEdith2021-08-20
是要放內建搜尋目錄或自行指定搜尋目錄. 另外套件包的說
Susan avatarSusan2021-08-22
明文件通常也會告訴你該放哪,缺文件的情況make install之
類的target也會透露放的位置
Aaliyah avatarAaliyah2021-08-24
dpkg -L libxxx-dev
Ophelia avatarOphelia2021-08-26
dev 裡面只有包 header、pkg-config、libxxx.so 的
symbolic link
Jacob avatarJacob2021-08-28
編譯、開發才需要的東西才放 -dev,這不難判斷吧
William avatarWilliam2021-08-30
大部分 distro 下 configure 都會掛 --prefix=/usr
--libdir=/usr/lib/{ARCH} 之類的
Daniel avatarDaniel2021-09-01
你想自己包也可以 configure 照下,然後
Dinah avatarDinah2021-09-03
make DESTDIR=/path/to/install 把東西裝到打包的 prefix
^install
Lily avatarLily2021-09-05
這樣你就可以在真的裝進系統前知道到底會裝什麼
Elvira avatarElvira2021-09-08
distro 包的跟從 upstream 載下來的不見得會一樣
Odelette avatarOdelette2021-09-10
不過同版本的就算有 patch 過 API/ABI 通常是不會變
Skylar Davis avatarSkylar Davis2021-09-12
linux 慣例是放 /usr/local/lib 之類的,參考 hier(7)
Skylar DavisLinda avatarSkylar DavisLinda2021-09-14
這是有彈性的,可以在 link 的時候指定 rpath 去找
Mary avatarMary2021-09-16
lib,也可以經由 LD_LIBRAY_PATH 變數讓程式去找 lib
Cara avatarCara2021-09-18
不是很清楚原 po 的問題的目的?要不要自行走一遭?
Gilbert avatarGilbert2021-09-22
你用 apt,所以應是 Debian 系的。從他的框架,裡頭
Agnes avatarAgnes2021-09-24
會有你需要的答案。但沒必要被框架框住。
Queena avatarQueena2021-09-26
就發行版套件打包的概念,你爽要設定自己的 prefix 也
Charlie avatarCharlie2021-09-28
可以,不要跟其他安裝好的套件衝突到就好。
Caroline avatarCaroline2021-09-30
/usr/local 那種是手動編譯用 root 安裝才會出現的東東
Adele avatarAdele2021-10-02
(在 Linux) 不建議在需要長期維運的環境下,把一坨套件
全都 sudo make install 塞進那邊
Iris avatarIris2021-10-04
那樣很噁
Connor avatarConnor2021-10-06
最近才剛有人把他們的系統拿給我看,/usr/local 亂裝一堆
Hedwig avatarHedwig2021-10-08
東西,結果系統搜尋函式庫時優先找 /usr/local/lib,導致
Eden avatarEden2021-10-11
各種程式使用到 /usr/local/lib 中版本不合的函式庫,最
Rae avatarRae2021-10-13
後連開機都有問題。
Jacky avatarJacky2021-10-15