问题标签 [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.
python - 将 python virtualenv 创建到 /usr/share/ 是否安全?
我一直在为我的项目构建 debian 包。
当用户安装我的包时,我的项目的二进制文件安装在/usr/bin/*
. 然后,在最后调用一个 bash 脚本,该脚本创建 python 虚拟环境/usr/share/my_proejct/venv
并在该虚拟环境上安装所需的 python 包。
我的项目的二进制文件正在使用该虚拟环境的 python。
AFAIK,使用 sudo 运行 pip 存在安全问题。但是我只是直接使用 virtualenv 的 python(
/usr/share/my_project/venv/bin/python
);我仍然virtualenv
使用 sudo 安装并venv
使用它创建。还危险吗?我可以将这个虚拟环境的 python 用于多个用户吗?
debian-packaging - Debian 软件包文件在重新安装时被删除
最近,我一直在为 debian 包构建我的项目。
我已经制作了 my_project.deb 并且安装得很好。
但是,当我重新安装它时,它不能正常工作。
为了找出我的项目文件在哪里,我编写了维护脚本(preinst、postinst、prerm、postrm)和ls
如下文件。
然后,
我做错了什么吗?我想不出这些发生的原因。
python - 从 .egg-info 名称中去除 python 版本
我尝试使用 stdeb 从我的 python 项目中创建一个 debian 包,但失败了,因为它不支持自定义更改日志。
正因为如此,我尝试自己使用一个小 shell 脚本来完成,ia 执行该脚本:
python3 setup.py install --install-layout=deb --no-compile --single-version-externally-managed --root="$package"
该脚本能够创建一个 debian 包,但该.egg-info
目录名为pyhp_core-2.2-py3.7.egg-info
,其中包含与其他包安装不同的 python 版本。
我想知道此更改将如何影响该软件包的用户以及是否可以禁用它。
python-3.x - 如何将 pybuild 与诗歌一起使用?
我想为我的 python 模块构建一个 debian 包。我使用构建系统诗歌。但pybuild
不懂诗。所以我想使用自定义构建系统,就像这里提到的那样。
但是,我收到错误消息:
I: pybuild base:217: python3.8 setup.py clean python3.8: can't open file 'setup.py': [Errno 2] No such file or directory E: pybuild pybuild:390: plugin distutils failed: exit code=2: python3.8 setup.py clean
。但是我不使用 distutils 作为系统,所以我无法理解这个问题。
python-3.x - 如何为 python 模块构建 dep 包?
如果我用终端调用它,我想为 python 模块构建一个基于 debian 的 deb 包并得到一个 ModuleNotFoundError。我创建了一个最小的例子。
目录结构:
rules
:
control
:
setup.py
:
main.py
:
然后我运行sudo python3 setup.py --command-packages=stdeb.command bdist_deb
并安装 deb 包sudo dpkg -i python3-hello
。
当我运行时,hello
我收到此错误消息:
package - RPM 包文件名语法,与 Debian 的区别
我最近为 Debian(实际上是 Ubuntu 18 和 20)构建了一个可执行文件包。核心内容的 tarball 能够在 Fedora 34 上运行。所以现在我被要求为它创建一个 RPM。
Debian 文件名类似于:
mystuff-sfwrname-edu_21.05-0715.1234-u20_amd64.deb
这对应于 Debian 软件包文件名的name _ version _ arch .deb 语法。下划线是主要分隔符;减号并不重要。(u20
表示 Ubuntu 20.04 版本;由于libc
问题,还有一个u18
Ubuntu 18.04 版本。)
来到 RPM 世界,我发现语法是:
name - version - release。arch .rpm,其中减号和最后一个周期很重要。然而,在架构之前的名称和句点中似乎有包名称,例如openssh-clients-7.4p1-16.el7.x86_64
带有减号。
然后我可以将我的包裹命名为:
mystuff-sfwrname-edu-21.05-0715.1234.el7.x86-64.rpm
在哪里:
name
=mystuff-sfwrname-edu
(带有多个减号)version
=21.05
release
=0715.1234.el7
arch
=x86_64
如果我假设相同的 RPM 在 Fedora 34 和 CentOS 7 上工作,我会直接删除el7
还是有其他一些我不知道的规则/实践?
linux - adduser: `/sbin/useradd -d /var/spool/postfix -g postfix -s /usr/sbin/nologin -u 115 postfix' 返回错误码 1. 退出
我正在尝试安装 postfix 以使用 SMTP,但是当我尝试安装它时收到错误消息:
如果我尝试使用dpkg-reconfigure postfix
,则输出显示 Postfix 已损坏或未完全安装。
我已尝试使用apt-get -f install
, apt remove --purge postfix
, apt autoclean
,apt autoremove
然后尝试再次安装,但始终出现错误。
任何帮助,将不胜感激。谢谢
uninstallation - 由于来自另一个软件包的冲突,dpkg 安装失败
我使用 dpkg-deb 工具构建了 2 个 debian 软件包(abc.deb 和 xyz.deb)。它们的目录结构是: pkg1: /opt/pqr/xyz pkg2: /opt/pqr/abc
两者共享一个依赖 pkg (oss.deb),它也安装在 /opt/pqr 下:/opt/pqr/oss
目的是将我所有的包都放在 /opt/pqr 下
我面临的问题是: Step1: install oss.deb 这导致:/opt/pqr/oss
步骤2:使用 dpkg -i abc.deb 安装 abc.deb 这将导致:
第三步:安装 xyz.deb 这一步是替换/删除 abc.deb 并安装 xyz 导致:
我在第 3 步结束时的期望:
我认为由于 /opt/pqr 路径是在安装过程中使用这两个软件包创建的,因此 dpkg 也在尝试删除它们。有没有办法解决这个问题,我只能在 dpkg -r abc.deb 期间删除 /opt/pqr/abc 并在 dpkg -r xyz.deb 期间同样只删除 /opt/pqr/xyz ?
debhelper - 如何在 debhelper dh_gencontrol 中使用变量?
我试图在构建过程中将数据附加到 Debian 包的描述中。所需的数据存储在debian/rules
文件中声明的常量中。
我已经覆盖dh_gencontrol
并添加@printf
了格式化数据的调用。
我遇到的问题与包含空格的字符串有关:
printf
拆分给定的字符串,将每个单词匹配到一个%s
实例。我希望它改用整个字符串。- 如何操作所述字符串,用空格替换空格
_
并将其添加到同一行?
相关部分来自debian/rules
:
预期输出:
实际输出: