问题标签 [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.
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 包安装?
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
文件
python - Debian软件包从Git安装依赖关系?
我有一个 Python 包,需要安装另一个包。该软件包可以从其他人的 github 页面下载。我需要把我的包变成一个 .deb 文件。我目前正在使用 stdeb 执行此操作。是否可以这样做,当我的 deb 文件正在安装时,它也会从 git 下载文件并执行“pip install”。在他们的 setup.py 上?
debian-packaging - 如何使用 stdeb3/py2dsc 和 dpkg-buildpackage 将 python 应用程序与 systemd 单元一起打包?
我想做的是为 Python3 应用程序创建一个 Debian 包,并让该包安装相关的 systemd 服务,并在删除或更新包时删除/更新它。
我有一个 Python3 程序,我想将它捆绑到 Ubuntu 18.04 上的 Debian 包中。我已经能够使用 asetup.py
和py2dsc
附带的程序成功地做到这一点stdeb3
。
这会创建一个可安装的 .deb,并且除了py2dsc
对 Python 3.6 的奇怪依赖之外,即使我使用的是 3.8,它也运行良好。
py2dsc
创建一个 debian 暂存树,包括debian/rules
:
接下来我想让这个包安装一个 systemd 服务单元,它将运行 Python3 程序。我认为需要调用服务文件python3-mypackage.service
来匹配<package-name>.service
,因为py2dsc
在python3-
包名称之前。
我做了一些研究,发现与其破解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
?
linux - 如何使用另一个 Debian 软件包安装 Docker?
我在 Docker Registry 上有 2 个映像,所以我的要求是创建 Debian 包来提取这 2 个映像并在已安装的机器上运行。我的问题是如果我想使用 Docker 命令,Docker 应该安装在给定的机器上。所以Docker已经安装好了,然后我们就可以使用它了。否则,我必须在安装该 Debian 软件包时安装它。
我的DEBIAN/control
文件看起来像这样
我不时添加Docker
and docker
,但它没有用。所以我在文件中Depends
添加了以下行,preinst
sudo apt install -y docker-ce
这条线无法运行。它给了我以下错误。
是的,我知道会发生这种情况,因为我已经在运行sudo apt install my_package.deb
安装我的包,所以不能sudo apt install
在我的包中运行另一个命令。我该如何解决这个问题?这应该是一次性的过程。
erlang - 从源文件构建自定义 Erlang debian 包
我正在尝试从源文件创建 Debian 包,但我被卡住了。我想要达到的目标:
- 下载 Erlang 源码 ( https://erlang.org/download/otp_src_23.1.tar.gz )
- 使用配置选项“--enable-fips”从中创建 Debian 软件包
- 能够在其他机器上安装该软件包
对于这种情况,有什么简单的解决方案吗?
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/
。这是行不通的,而且在结构上,对我来说似乎不太好。
这是否有意义,您是否看到任何其他解决问题的方法?
dpkg - 如何故意将包配置一半?
我正在尝试测试与半配置包相关的 Wazuh 配置。所以,我正在尝试创建一个.deb
安装后最终配置一半的包。
我首先按照这些说明创建了一个非常简单、什么都不做的包。
我尝试将退出代码更改debian/postinst.ex
为 1,但软件包仍然安装成功。
我尝试向 中添加一个不存在的文件debian/conffiles
,但debuild
失败了。
我还搜索了所有可能导致包配置一半但没有任何运气的信息。
谢谢!
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
,他们的更新日志中没有“自动构建”日志。如何删除此日志?
tensorflow - 为 tensorflow 构建 debian 包
我是debian打包的新手。
我正在尝试使我的 git 项目成为一个 debian 包,然后上传到 ppa,这使人们可以轻松安装我的包。
问题是我的项目由 c++、python、bash 文件组成。
我成功地编写了一个 c++、bash 的 debian 脚本(例如control
,rules
或 sth)。
但是,python 制作起来有点困难,因为我的 python 脚本使用tensorflow
.
起初,我不得不想出一个python安装计划。
这是我到目前为止所发现的。
- 使用系统的python
IIUC,它只是通过Build-Depends
在control
文件中设置到、、、dh-python
和到文件中来完成。python3-all
python3-setuptools
dh $@ --with python3
rules
但是由于我希望用户安装特定版本的tensorflow
,所以用户必须在安装我的项目之前自己安装 tensorflow==2.xx ,这很困扰他们并使他们的python环境变脏。
- 利用
dh_virtualenv
IIUC,dh_virtualenv
将我的项目安装到/opt/venvs/«packagename»
. 然后,即使用户安装了我的项目,他们也无法在 bash 命令行中运行我的项目,因为/opt/venvs
不是$PATH
.
- 使用
stdeb
或Pybuild
有了它们,我可以构建我的项目所依赖的 python 包,然后使用它们。但是,不幸的是,tensorflow
似乎不可能用stdeb
or构建Pybuild
:(
- 使用
postinst
脚本
事实上,这是我认为对我来说最好的。在我的项目被安装到之后/usr/bin
,我让postinst
python 虚拟环境进入/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选项吗?