构建一个 Debian 软件包会尝试安装到 real /opt



这又是一个不错的 Debian 打包问题。

我有一个安装到/opt 的应用程序(安装位置实际上无关紧要,/usr 也会出现同样的问题):

OPT=1 ./配置 && 制造 &&使安装

我从我的另一个应用程序中获取了一个使用 CMake 的 Debian 打包,但配置、构建和安装是相似的。我稍微修改了规则文件以构建我的新应用程序:

build: build-stamp
build-stamp:
    dh_testdir
    # Add here commands to compile the package.
    OPT=1 ./configure && $(MAKE) -j$(shell cat /proc/cpuinfo | grep processor | wc -l)
    touch build-stamp

我原封不动地保留了安装部分:

install: build
    dh_testdir
    dh_testroot
    dh_prep
    dh_installdirs
    # Add here commands to install the package into debian/<packagename>
    DESTDIR=`pwd`/debian/`dh_listpackages` $(MAKE) install

现在,问题是当我尝试构建软件包时,它会尝试安装到真正的/opt 并崩溃:

mkdir: cannot create directory ‘/opt/snm’: Permission denied
make[1]: *** [install_target] Error 1
make: *** [install] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1361:
dpkg-buildpackage -rfakeroot -D -us -uc -i -b failed

我只是想不通为什么我的包装不适用于我的新应用程序。或者,为什么它确实与其他应用程序一起使用:)

看来我的安装步骤只是忽略了 Debian 规则文件给出的 DESTDIR。

最新更新