我目前正在原始版本的 Raspberry Pi 和最新的 Raspbian 上从 Github 编译最新版本的 Mono。
这是一个非常耗时的过程,当它完成后我不想重复。
是否可以将编译后的 Mono 安装打包成 .deb,例如,允许我重新安装最新的 Raspbian,然后 dpkg -i my-mono-build.deb?
最佳答案
当然,如果您选择合适的工具,那么这很容易做到,这样您就不需要 debian 打包大师了。至于我,我选择了fpm
正是为了做到这一点。 (注意:通过 gem
安装,而不是 apt-get
。)
这里有an example of a script of how to build a Mono .deb with this ,我将其复制并粘贴到此处以供后代使用(以防万一我错误地删除了 github 存储库,或者 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"
关于mono - 构建 Mono 本身的 .deb 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37501518/