使用一些库文件(* .so)创建了一个简单的debian / ubuntu包。
正常工作,除了它将它们默认安装在根路径“/".
中因为我已经重新创建了我的Makefile以输出到 $ DESTDIR / 而不是我在Makefile中提供的“通常”目录,所以当从源代码编译时,我现在如何设置路径现在应该安装哪些文件?我知道使用 dh_make 创建包时有几种选择,“s”是默认包。但是,似乎无法找到告诉dpkg放置已安装文件的地方。
其次,只包含“.so”文件的Deb Library包仍然应该是“单个二进制文件”,因为我认为使用库用于开发目的?由于这是一个库,我只想确保这不是导致文件安装在错误位置的原因。我的意思是.so文件和头文件安装?
我用过的东西:
dh_make -e my@email.com -f ../myfile-1.0.tar.gz
dpkg-buildpackage -rfakeroot
和一些配置设置为debian / control,Makefile中的$ DESTDIR。
答案 0 :(得分:1)
似乎这很简单,但却很混乱。这有效,不确定是否有更好的解决方案。
在我的makefile中,我有一些变量
InstallTo = /usr/lib
install:
mkdir -p $(DESTDIR)$(InstallTo)
cp $FILE_TO_COPY $(DESTDIR)$(InstallTo)
这样它将在* .deb文件中创建目录树。我在使用/ usr / local / lib而不是/ usr / lib /时遇到了一些麻烦,并且rmdir在尝试删除它时抱怨它没有文件(只是目录)。不确定原因,但改为将其改为/ usr / lib。
由于有人投了这个,我猜是有人也在寻找答案,这是我的解决方案。也许有人可以提供更好的一个。
只需注意,$ DESTDIR变量是dh_make建议用户在Makefile中使用的变量。它是dpkg构建程序的位置以及安装位置的路径,因此它可以包含在.deb文件中。