构建一个Mono本身的.deb包

时间:2016-05-28 16:45:55

标签: mono raspberry-pi debian raspbian packaging

我目前正在最新的Raspbian上使用原始版本的Raspberry Pi从Github编译最新版本的Mono。

这是一个非常耗时的过程,当它完成时我不想重复。

可以将已编译的Mono安装打包成.deb,例如,允许我重新安装最新的Raspbian,然后dpkg -i my-mono-build.deb?

1 个答案:

答案 0 :(得分:1)

当然,如果您选择合适的工具,这样就很容易做到,这样您就不需要在debian包装上使用母版。至于我,我选择了fpm来做到这一点。 (注意:通过gem安装,而不是apt-get。)

在这里你有an example of a script of how to build a Mono .deb with this,我在这里复制+粘贴后代(以防万一我错误地删除了github repo,或者github将来不再使用):

#!/bin/bash
set -e

die () {
    echo >&2 "$@"
    exit 1
}

[ "$#" -eq 1 ] || die "Please specify the version of Mono you want to build as the argument. (Check the versions in the tarball list here: http://download.mono-project.com/sources/mono/)"

which fpm > /dev/null || (echo "Please install fpm (from gem, not apt-get)" && exit 1)

if mono --version > /dev/null 2>&1; then
    echo "Mono is installed locally; please uninstall first" && exit 1
fi

WORK_DIR=/tmp/7digital-mono-work
rm -rf $WORK_DIR
mkdir $WORK_DIR
cd $WORK_DIR

MONO_VERSION=$1
MONO_DIR="mono-$MONO_VERSION"

SEVEND_VERSION="701"
MONO7D_VERSION=$MONO_VERSION'.'$SEVEND_VERSION
MONO7D_NAME="mono-7d"

echo "Downloading $MONO_VERSION"
wget http://download.mono-project.com/sources/mono/mono-$MONO_VERSION.tar.bz2

tar -jxf mono-$MONO_VERSION.tar.bz2
TARGET_DIR="$WORK_DIR/destdir"
mkdir $TARGET_DIR

cd "$WORK_DIR/$MONO_DIR"

./configure --prefix=/usr
make
make install DESTDIR="$TARGET_DIR"
cd $WORK_DIR

fpm -s dir \
    -t deb \
    -n $MONO7D_NAME \
    -v $MONO7D_VERSION \
    -C $TARGET_DIR \
    -d "libglib2.0-dev (>= 0)" \
    usr/bin usr/lib usr/share usr/include usr/etc

echo "Done. Your package should be ready in $WORK_DIR"