问题标签 [debian-packaging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

debian-packaging - 使用 apt 在 debian 上安装 deb 文件时,依赖包的版本字段如何影响包安装,如 >=、<= 等?

下面是第 3 方 deb 包控制文件。我不允许修改这个文件。

我的虚拟机中安装了libssl1.1(debian:buster-slim)。当我尝试安装此第 3 方 deb 文件时,出现以下错误

ThirdPartyPackage :取决于:libssl1.0.2 (>= 1.0.2d) 但不可安装

实际上 libssl1.1 大于 1.0.2d,仍然抱怨为什么?为什么没有检查 libssl1.1 的第 3 方 deb 包安装?

0 投票
1 回答
137 浏览

debian-packaging - 将 CXXFlag 添加到 dpkg-buildpackage

我正在从源代码创建 .deb 包.tar.gz我已经完成了所有步骤,最后我运行了这个命令fakeroot dpkg-buildpackage -F来构建包,在链接期间的最后一步抛出错误消息undefined reference to symbol 'pthread_create@@GLIBC_2.2.5,这意味着我需要添加-pthread到编译器标志,但我不明白如何将其添加到文档中,dpkg-buildflags但它们非常令人困惑,我无法理解如何执行此操作。

debian/rule文件

0 投票
1 回答
76 浏览

python - Debian软件包从Git安装依赖关系?

我有一个 Python 包,需要安装另一个包。该软件包可以从其他人的 github 页面下载。我需要把我的包变成一个 .deb 文件。我目前正在使用 stdeb 执行此操作。是否可以这样做,当我的 deb 文件正在安装时,它也会从 git 下载文件并执行“pip install”。在他们的 setup.py 上?

0 投票
1 回答
732 浏览

debian-packaging - 如何使用 stdeb3/py2dsc 和 dpkg-buildpackage 将 python 应用程序与 systemd 单元一起打包?

我想做的是为 Python3 应用程序创建一个 Debian 包,并让该包安装相关的 systemd 服务,并在删除或更新包时删除/更新它。

我有一个 Python3 程序,我想将它捆绑到 Ubuntu 18.04 上的 Debian 包中。我已经能够使用 asetup.pypy2dsc附带的程序成功地做到这一点stdeb3

这会创建一个可安装的 .deb,并且除了py2dsc对 Python 3.6 的奇怪依赖之外,即使我使用的是 3.8,它也运行良好。

py2dsc创建一个 debian 暂存树,包括debian/rules

接下来我想让这个包安装一个 systemd 服务单元,它将运行 Python3 程序。我认为需要调用服务文件python3-mypackage.service来匹配<package-name>.service,因为py2dscpython3-包名称之前。

我做了一些研究,发现与其破解pre/postinst脚本,不如在dh命令中debian/rules添加--with systemd选项,并且我需要dh-systemd在我的 Ubuntu 18.04 系统上安装。为此,我在运行后暂停py2dsc,将相关条目添加到debian/rules,然后运行dpkg-buildpackage

由于我不明白的原因,dh-systemd输出中没有提到dpkg-buildpackage

我四处搜索,虽然我可以找到构建 python 包的示例,以及使用 systemd 单元构建包的示例,但我无法找到一个同时打包 python 项目和关联的 systemd 单元的示例,所以我'不知道从这里去哪里。我想知道使用是否与使用pybuild冲突--with systemd

0 投票
1 回答
328 浏览

linux - 如何使用另一个 Debian 软件包安装 Docker?

我在 Docker Registry 上有 2 个映像,所以我的要求是创建 Debian 包来提取这 2 个映像并在已安装的机器上运行。我的问题是如果我想使用 Docker 命令,Docker 应该安装在给定的机器上。所以Docker已经安装好了,然后我们就可以使用它了。否则,我必须在安装该 Debian 软件包时安装它。

我的DEBIAN/control文件看起来像这样

我不时添加Dockerand docker,但它没有用。所以我在文件中Depends添加了以下行,preinst

sudo apt install -y docker-ce这条线无法运行。它给了我以下错误。

是的,我知道会发生这种情况,因为我已经在运行sudo apt install my_package.deb安装我的包,所以不能sudo apt install在我的包中运行另一个命令。我该如何解决这个问题?这应该是一次性的过程。

0 投票
0 回答
60 浏览

erlang - 从源文件构建自定义 Erlang debian 包

我正在尝试从源文件创建 Debian 包,但我被卡住了。我想要达到的目标:

对于这种情况,有什么简单的解决方案吗?

0 投票
0 回答
198 浏览

pyinstaller - 带有 pyinstaller 的 Debian 打包一个目录

我有一个 python 应用程序,我需要在多个覆盆子之间分发,目前使用的是 debian 包。

目前我正在使用 pyinstaller 打包一个可执行文件,但是在我最新的开发中,我使用的是 tensorflow,这会产生一个大的二进制文件 (>400MB)。除了加载应用程序需要超过 5 分钟之外,文件系统_MEI***中创建的文件夹也越来越多,占用超过 1GB(单文件程序的工作原理

为了解决这个问题,我尝试使用该onedir方法而不是onefile. 不幸的是,我现在正在努力找出文件夹中生成的不同文件的安装位置(dist,,/usr/bin?)/usr/lib//usr/local/lib

注意:现在安装 .deb,将文件放入/usr/lib/并为 .deb 中的可执行文件创建符号链接/usr/bin/。这是行不通的,而且在结构上,对我来说似乎不太好。

这是否有意义,您是否看到任何其他解决问题的方法?

0 投票
1 回答
194 浏览

dpkg - 如何故意将包配置一半?

我正在尝试测试与半配置包相关的 Wazuh 配置。所以,我正在尝试创建一个.deb安装后最终配置一半的包。

我首先按照这些说明创建了一个非常简单、什么都不做的包。

我尝试将退出代码更改debian/postinst.ex为 1,但软件包仍然安装成功。

我尝试向 中添加一个不存在的文件debian/conffiles,但debuild失败了。

我还搜索了所有可能导致包配置一半但没有任何运气的信息。

谢谢!

0 投票
0 回答
29 浏览

debian - 将 debian 包上传到启动板 ppa 时添加了更改日志

我是 debian 软件包的新手。

我有一个 CMake 项目,我想将我的项目上传到私人 ppa(启动板)。然后,人们可以通过键入 apt-get my_project 轻松下载我的项目二进制文件 :)

为此,我在启动板中注册并导入了我的源代码,然后构建请求。(https://code.launchpad.net/~mhs4670go/test-project-123/+git/trunk

在我的项目成功构建后(https://code.launchpad.net/~mhs4670go/+archive/ubuntu/ppa/+build/21441673),最后我可以通过apt-get install {my_project}.

但是,当我下载我的项目源代码时apt source {my_project},我的debian/changelog.

添加了“自动构建”日志。但我不想添加它。

当我下载其他软件包时vim,他们的更新日志中没有“自动构建”日志。如何删除此日志?

0 投票
0 回答
43 浏览

tensorflow - 为 tensorflow 构建 debian 包

我是debian打包的新手。

我正在尝试使我的 git 项目成为一个 debian 包,然后上传到 ppa,这使人们可以轻松安装我的包。

问题是我的项目由 c++、python、bash 文件组成。

我成功地编写了一个 c++、bash 的 debian 脚本(例如controlrules或 sth)。

但是,python 制作起来有点困难,因为我的 python 脚本使用tensorflow.

起初,我不得不想出一个python安装计划。

这是我到目前为止所发现的。

  1. 使用系统的python

IIUC,它只是通过Build-Dependscontrol文件中设置到、、、dh-python和到文件中来完成。python3-allpython3-setuptoolsdh $@ --with python3rules

但是由于我希望用户安装特定版本的tensorflow,所以用户必须在安装我的项目之前自己安装 tensorflow==2.xx ,这很困扰他们并使他们的python环境变脏。

  1. 利用dh_virtualenv

IIUC,dh_virtualenv将我的项目安装到/opt/venvs/«packagename». 然后,即使用户安装了我的项目,他们也无法在 bash 命令行中运行我的项目,因为/opt/venvs不是$PATH.

  1. 使用stdebPybuild

有了它们,我可以构建我的项目所依赖的 python 包,然后使用它们。但是,不幸的是,tensorflow似乎不可能用stdebor构建Pybuild:(

  1. 使用postinst脚本

事实上,这是我认为对我来说最好的。在我的项目被安装到之后/usr/bin,我让postinstpython 虚拟环境进入/opt/my_venv/,然后让我的项目的二进制文件指向它。我认为它运作良好(我希望..)

但是,问题是,有一些关于使用postinst脚本的警告。

https://www.debian.org/doc/manuals/maint-guide/dother.en.html#maintscripts

作为新手维护者,您应该避免手动编辑维护者脚本,因为它们是有问题的。

如果你没有听我的,并且为一个包创建了自定义维护脚本,你应该确保测试它们不仅用于安装和升级,还用于删除和清除。

https://askubuntu.com/questions/327543/how-can-a-debian-package-install-python-modules-from-pypi

在安装二进制文件 (.deb) 时即时下载非 debian 软件包是一种严重的安全风险,绝对是禁忌。

嗯..我认为我也错过了一些非常重要的事情。

你能给我一些意见吗?

我可以选择4选项吗?