我有兴趣为 ubuntu 18.04 构建一个 deb 包。我发现这篇文章对我有帮助,如何从源代码创建 NGINX debian 包?。
我的问题是,使用 root 权限构建 deb 包是否安全?因为我必须使用 sudo checkinstall,而不是 checkinstall。
目前为止我知道我们不应该使用 root 权限来构建 rpm 包。我想知道这个术语是否不适用于 deb 包。
短暂性脑缺血发作
答案1
此论坛主题概述了创建 .deb 软件包进行分发的基本方法,事实上,这不需要 root 权限。我在此复制此内容,并感谢论坛用户曲线无限,很好地说明了所涉及的基础知识。
checkinstall
描述的工具链接您提供的.deb 软件包主要不是用于一般的 .deb 软件包准备。它主要用来以软件包管理器知道的方式安装您自己编译的软件。因此,它需要 root 权限。使用的技巧是创建一个特定于您系统的 .deb 文件,然后安装该文件。它创建的 .deb 可能不适合一般分发。
摘录自Ubuntu论坛经过治愈无限:
确定软件包的名称。标准 Debian 符号全部小写,格式如下:
<project>_<major version>.<minor version>-<package revision>
例如,您可以将您的第一个包命名为...
helloworld_1.0-1
创建一个目录来制作你的包。该名称应该与包名称相同。
mkdir helloworld_1.0-1
假设打包目录实际上是文件系统的根目录。将程序文件放在系统上要安装的位置。
mkdir helloworld_1.0-1/usr
mkdir helloworld_1.0-1/usr/local
mkdir helloworld_1.0-1/usr/local/bin
cp "~/Projects/Hello World/helloworld" helloworld_1.0-1/usr/local/bin
现在创建一个特殊的元数据文件,包管理器将使用它来安装您的程序......
mkdir helloworld_1.0-1/DEBIAN
gedit helloworld_1.0-1/DEBIAN/control
把类似这样的内容放到该文件中...
Package: helloworld
Version: 1.0-1
Section: base
Priority: optional
Architecture: i386
Depends: libsomethingorrather (>= 1.2.13), anotherDependency (>= 1.2.6)
Maintainer: Your Name <[email protected]>
Description: Hello World
When you need some sunshine, just run this
small program!
(描述中每行前的空格很重要)
现在,假设您当前的目录是包含文件夹的目录helloworld_1.0-1
,您只需要制作包:
dpkg-deb --build helloworld_1.0-1
您已经完成了!
引述结束。