我有一些文件想要.deb
使用使用创建的文件来安装equivs-build
。我无法理解的是文件中所需的语法.equivs
。
这是我的文件布局:
myapp.equivs
myapp/
files/
script.sh
我想说的equivs-build
是安装script.sh
文件在/usr/share/myapp/script.sh
.我做了一些测试,但以下语法似乎都无法Files
按预期工作。
测试1
Files: ./myapp/files/script.sh /usr/share/myapp/script.sh
结果:文件安装在/usr/share/myapp/script.sh/myapp/files/script.sh
.
测试2
Files: ./demo/files/script.sh /usr/share/myapp/
结果:文件安装在/usr/share/myapp/myapp/files/script.sh
.
测试3
Files: ./demo/files/script.sh /usr/share/myapp
结果:文件安装在/usr/share/myapp/myapp/files/script.sh
.
如何指示 equivs-build 在任意位置安装文件?
答案1
我也有同样的问题。我认为 equivs 的构建只是为了创建非常简单的包。不是具有更深层次源目录结构的包。
作为解决方法,我“修复”了 equals-build perl 脚本,如下所示:
/usr/bin/equivs-build
(第 70 行左右):
die "Cannot parse Files line: '$_'\n" unless m:^\s*(\S+)\s+(\S+)/?\s*$:;
#$install_files{"$2/$1"} = $1;
$install_files{"$2"} = $1; # do not append source path to target path
现在,您可以在控制文件中使用文件名指定完整的源路径和目标路径。 IE
Files: opt/sounds/test.wav /opt/sounds/test.wav
opt/sounds/test4.wav /opt/sounds/default.wav
通过该方法,您可以使用任意深层源目录结构。作为一个好处,如果需要,您还可以指定不同的目标文件名。
希望有帮助。