Создавая наши собственные пакеты 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 "$@"
Каким должен быть правильный конечный результат:
#!/bin/sh
exec /usr/bin/mono \
--debug $MONO_OPTIONS \
/usr/lib/mono/2.0/nunit-console.exe "$@"
Обходной путь, который мы используем в нашем скрипте 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 здесь.
Отказ от ответственности: я знаю, что есть предварительные пакеты Mono 3 здесь! Но они не работают для Squeeze.