mono - 构建 Mono 本身的 .deb 包

标签 mono raspberry-pi debian raspbian packaging

我目前正在原始版本的 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/

相关文章:

c# - OSX 上的 Mono,Process.Start 有时会抛出无法处理的 native 包装器异常

c# - ASP.NET MVC 4 Ninject MVC 4 找不到类型 'App.Controller' 的默认构造函数

c# - 在 Raspberry Pi 上使用单声道编译 C# Windows 窗体应用程序时出错

python - 导入树莓派GPIO错误

c++ - 我无法在 Debian(Ubuntu) 中运行在 Redhat(Centos) 中运行的 C++ 程序

Linux 上的 ASP.Net

ubuntu - 如何在 Ubuntu 中使用 apt-get 下载其他不同的 deb 文件?

android - 将运行 Android Things 的 Raspberry Pi 连接到 wifi

linux - 在 debian wheezy 上安装 ubuntu-extras

linux - smbclient linux/os x nt_status_pipe_broken