Re: [問題] 想請問一下在不同Distribution開發程式 …
※ 引述《ccbruce (今、そこに いる僕)》之銘言:
: 首先是我們的開發平台,因為未來我們的程式應該有很大的機會部署到uBuntu上,但是我
: 覺得debian的社群比較大,資源比較豐富,所以說服了主管採用debian作為開發平台。但
: 是現在我不禁懷疑我這個作法是不是錯的...
: 雖然同樣是Linux,不過不同Distribution上的library版本、目錄配置都不同。那麼,有
: 沒有可能發生這樣的一件事呢?比如說我的程式裡用了libc6 2.7,在debian下一切正常
: ,而在ubuntu上雖然也有libc6 2.7,卻無法執行的情況呢?
系統的 library path 對 user program 而言並沒有那麼重要,使用者其實可以透過
ldconfig 告訴 dynamic linker 要去哪裡找 library。檔名比較重要,要一致。
比如說需要 libc.so.6,那 target 平台也必須有相同名稱的 library。
: 接著,就是安裝時的檢查問題,假設我們用deb來管理我們的程式,那麼在ubuntu上,檢
: 查相依性的control檔是不是得要重寫呢?
一般來說,debian 跟 ubuntu 打包出來的 debian package 是可以互通的。比較要注意
的是相依套件版本的問題。同樣是 libc6,在 ubuntu 7.10 上是 libc6-2.6.1,在
debian 4.0 上是 libc6-2.3.6。所以在 ubuntu 7.10 上打包的套件拿到 debian 4.0 上
會遇到一大堆套件不夠新的錯誤而不能安裝。
所以儘量不要用非穩定版的版本(debian sid, testing 或尚未正式釋出的
ubuntu 測試版)來打包套件。不然會因為他們用的套件太新,穩定版都不能裝。
: 另外,如果我們用tarball來發行我們的程式,
: 又要如何檢查相依性呢?
有原始碼的話,請多利用 autotool(autoconf+automake)。這樣使用者就能透過常見的
./configure, make, make install 三步曲安裝軟體。
: 最後,我覺得雖然核心相同、程式相同,可是各個Distribution卻因為各自的套件管理和
: 結構不同,最後還是造成各自不相容。有沒有文章或書在探討這方面的問題的呢?
目前的情況就是各自為政,LSB 很努力想做一個標準化的 API 解決這個問題,
不過這得花費許多年,短期之內是看不到良好解決方案的。
目前要做的話,最 general 的方法就是用 autotool 讓使用者自己編譯安裝。
--
Licensed under CC2.5(TW) by-sa, Samael Wang.
http://creativecommons.org/licenses/by-sa/2.5/tw/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.82.153
※ 編輯: freesamael 來自: 220.135.82.153 (04/18 00:54)
推
04/18 00:55, , 1F
04/18 00:55, 1F
※ 編輯: freesamael 來自: 220.135.82.153 (04/18 01:10)
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章