2013-02-05 32 views
1

構建我們自己的deb包,我們遇到了必須手動修補某些腳本以便它們獲得正確前綴的問題。由deb包安裝的腳本有錯誤的前綴

尤其

  • 我們正在建設mono
  • 我們正在使用的官方壓縮包。
  • 該結束了錯誤的前綴的腳本是:mcs,xbuild,NUnit的-console4等

一個錯誤的腳本示例:

#!/bin/sh 
exec /root/7digital-mono/mono/bin/mono \ 
     --debug $MONO_OPTIONS \ 
     /root/7digital-mono/mono/lib/mono/2.0/nunit-console.exe "[email protected]" 

應該是什麼正確的最終結果是:

#!/bin/sh 
exec /usr/bin/mono \ 
     --debug $MONO_OPTIONS \ 
     /usr/lib/mono/2.0/nunit-console.exe "[email protected]" 

我們使用我們的build-package腳本中調用的dpkg-buildpackage之前解決方法:

sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/mcs 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/xbuild 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console2 
sed -i s,`pwd`/mono,/usr,g $TARGET_DIR/bin/nunit-console4 

現在,解決這個問題的正確方法是什麼?完整的debian軟件包創建腳本here

聲明:我知道有預覽包Mono 3 here!但那些對Squeeze不起作用。

回答

2

的正確方法是呼叫./configure --prefix=$TARGET_DIR

這告訴所有的二進制文件/腳本/ ......這個installated文件將在${TARGET_DIR}結束,而他們真的應該/usr endup。

可以使用DESTDIR變量(如make install DESTDIR=${TARGET_DIR})改變(前綴)的安裝目標在安裝時(文件將最終達到在${TARGET_DIR}/${prefix}但只會有${prefix}「內置」)

+0

冷靜,我現在要測試這個 – knocte

+0

mmm,當我這樣做,它失敗了,我會盡快抓住錯誤,並讓你知道 – knocte

+0

你在做什麼,它是如何失敗? –