从git url的修订标记创建.deb包

从git url的修订标记创建.deb包,git,bash,permissions,deb,Git,Bash,Permissions,Deb,创建了以下bash脚本以从git url和修订标记创建.deb包: 我用以下方法进行了测试: bash/path/to/GitDeb.shgit://repo.or.cz/tinycc.git 变矩器离合器0.9.26 释放\u 0\u 9\u 26 但是在打36号线的时候 它在以下情况下失败: Installing with make install... ========================= Installation results =====================

创建了以下bash脚本以从git url和修订标记创建.deb包:

我用以下方法进行了测试:

bash/path/to/GitDeb.shgit://repo.or.cz/tinycc.git 变矩器离合器0.9.26 释放\u 0\u 9\u 26

但是在打36号线的时候

它在以下情况下失败:

Installing with make install...

========================= Installation results ===========================
make -C lib native
make[1]: Entering directory `/home/owner/Documents/GitDeb/tcc/lib'
make[1]: Nothing to be done for `native'.
make[1]: Leaving directory `/home/owner/Documents/GitDeb/tcc/lib'
mkdir -p "/usr/local/bin"
install -m755 tcc "/usr/local/bin"
install: cannot create regular file ‘/usr/local/bin/tcc’: Permission denied
make: *** [install] Error 1

****  Installation failed. Aborting package creation.
建议使用
--fstrans
。所以使用这个标志

更新:我已经下载了您的repo,并在lxc容器中运行了您的代码。只需添加
--fstrans
就可以通过运行您的命令创建一个完整的deb

fakeroot
伪造一些文件操作,但它不允许它启动的命令在需要权限的地方安装东西。这就是为什么需要
--fstrans

ETA:命令
mkdir-p”/usr/local/share/doc/tcc“
可能会失败。这是因为启动
checkinstall
时,目录
/usr/local/share/doc
不存在。是的,
-p
意味着创建所有父项,因此它应该可以工作,但由于某种原因,
--fstrans
无法处理它。解决方案是在运行
checkinstall
之前预先创建
/usr/local/share/doc/

sudo mkdir /usr/local/share/doc
在尝试构建之前,我会手动执行此操作。就像我必须手动安装带有apt-get的
apt-get
软件包一样,这样构建才能正常工作。(在脚本中添加此目录的存在性检查将对其他可能运行您的脚本的人有所帮助。)

建议使用
--fstrans
。所以使用这个标志

更新:我已经下载了您的repo,并在lxc容器中运行了您的代码。只需添加
--fstrans
就可以通过运行您的命令创建一个完整的deb

fakeroot
伪造一些文件操作,但它不允许它启动的命令在需要权限的地方安装东西。这就是为什么需要
--fstrans

ETA:命令
mkdir-p”/usr/local/share/doc/tcc“
可能会失败。这是因为启动
checkinstall
时,目录
/usr/local/share/doc
不存在。是的,
-p
意味着创建所有父项,因此它应该可以工作,但由于某种原因,
--fstrans
无法处理它。解决方案是在运行
checkinstall
之前预先创建
/usr/local/share/doc/

sudo mkdir /usr/local/share/doc
在尝试构建之前,我会手动执行此操作。就像我必须手动安装带有apt-get的
apt-get
软件包一样,这样构建才能正常工作。(在脚本中添加此目录的存在性检查将对其他可能运行您的脚本的人有所帮助。)

建议使用
--fstrans
。所以使用这个标志

更新:我已经下载了您的repo,并在lxc容器中运行了您的代码。只需添加
--fstrans
就可以通过运行您的命令创建一个完整的deb

fakeroot
伪造一些文件操作,但它不允许它启动的命令在需要权限的地方安装东西。这就是为什么需要
--fstrans

ETA:命令
mkdir-p”/usr/local/share/doc/tcc“
可能会失败。这是因为启动
checkinstall
时,目录
/usr/local/share/doc
不存在。是的,
-p
意味着创建所有父项,因此它应该可以工作,但由于某种原因,
--fstrans
无法处理它。解决方案是在运行
checkinstall
之前预先创建
/usr/local/share/doc/

sudo mkdir /usr/local/share/doc
在尝试构建之前,我会手动执行此操作。就像我必须手动安装带有apt-get的
apt-get
软件包一样,这样构建才能正常工作。(在脚本中添加此目录的存在性检查将对其他可能运行您的脚本的人有所帮助。)

建议使用
--fstrans
。所以使用这个标志

更新:我已经下载了您的repo,并在lxc容器中运行了您的代码。只需添加
--fstrans
就可以通过运行您的命令创建一个完整的deb

fakeroot
伪造一些文件操作,但它不允许它启动的命令在需要权限的地方安装东西。这就是为什么需要
--fstrans

ETA:命令
mkdir-p”/usr/local/share/doc/tcc“
可能会失败。这是因为启动
checkinstall
时,目录
/usr/local/share/doc
不存在。是的,
-p
意味着创建所有父项,因此它应该可以工作,但由于某种原因,
--fstrans
无法处理它。解决方案是在运行
checkinstall
之前预先创建
/usr/local/share/doc/

sudo mkdir /usr/local/share/doc

在尝试构建之前,我会手动执行此操作。就像我必须手动安装带有apt-get的
apt-get
软件包一样,这样构建才能正常工作。(在脚本中添加此目录是否存在的检查将对其他可能运行您的脚本的人有所帮助。)

您的脚本适合我,我不明白您为什么会出现这样的错误。请将脚本的完整输出粘贴到上,并在此处共享链接。@janos我尝试了下面的答案,添加了fstrans,但仍在该注释中获得了一个错误链接。该错误很容易修复,请创建目录
/usr/local/share/doc
,然后重新运行脚本。如果你有另一个错误,再发一次。你的脚本对我有用,我不明白你为什么会有这样的错误。请将脚本的完整输出粘贴到上,并在此处共享链接。@janos我尝试了下面的答案,添加了fstrans,但仍在该注释中获得了一个错误链接。该错误很容易修复,请创建目录
/usr/local/share/doc
,然后重新运行