Re: [問題] 想請問一下在不同Distribution開發程式 …

看板LinuxDev作者 (燒賣)時間16年前 (2008/04/18 00:53), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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)
文章代碼(AID): #181u2KxY (LinuxDev)
文章代碼(AID): #181u2KxY (LinuxDev)