创建和安装您自己的 deb 包的简单教程。
除了 Debian、Ubuntu 或任何基于 Debian 的操作系统之外什么都没有
Mypackage应用程序在运行时将打开 Ubuntu 的官方网站。
mypackage_1.0_all
文件夹的命名法: package-name_version_architecture
。
包名称: mypackage
版本: 1.0
架构:可以是受支持架构的all
或子集
原始包架构:
。 └── mypackage_1.0_all # 包主文件夹 ├── 德比安 │ ├── control # 包含包主要信息的文件 │ ├── postinst # 安装后执行的脚本 │ └── preinst # 安装前执行的脚本 ├── 选择 │ └── mypackage # 包含我们软件的文件夹 │ └── open_link.sh # 打开浏览器访问ubuntu.com的脚本 └── usr └── 分享 ├── 应用领域 │ └── mypackage.desktop # 启动器中包含应用程序信息的文件 └── 图标 └── mypackage.xpm # 启动器应用程序图标
有关DEBIAN/control
文件的更多信息:
Package: mypackage
Version: 1.0 # package version
Architecture: all # our package sums up to a bash script and this is POSIX
Essential: no # essential to the system ?
Priority: optional # install order in package management system
Depends: curl,zenity # comma-separated dependency packages (,)
Maintainer: flavienbwk
Description: A sample package...
尽管有多种方法可以在不使用 sudo 的情况下安装 deb 存档,但大多数 deb 软件包都设计为在系统范围内安装。这意味着preinst和postinst脚本或存档中包含的任何其他二进制文件可以在系统上不受任何限制地运行(请参阅Snap 包以获取替代方案)。请仔细检查您的脚本,并在共享时小心谨慎,以免破坏他人的计算机。
建造
dpkg-deb --build ./mypackage_1.0_all
安装
sudo gdebi -n ./mypackage_1.0_all.deb # 测试(需要 gdebi-core) sudo dpkg -i ./mypackage_1.0_all.deb # 安装
注意使用
sudo apt autoremove mypackage
卸载
您应该在启动器中看到Mypackage :
第一个选项是最简单的:我们可以在本地安装软件包。
创建一个文件夹,我们的存储库将位于其中,并将我们的.deb
包移入其中
mkdir -p ./镜像/池 cp ./mypackage_1.0_all.deb ./mirror/pool/
创建Packages
索引文件
cd ./镜子 dpkg-scanpackages -m ./pool > 软件包
将目录添加到系统源中
echo "deb [trusted=yes] 文件:/path/to/repository/mirror /" | sudo tee /etc/apt/sources.list.d/mypackage.list
更新您的包定义并安装
须藤apt更新 sudo apt安装mypackage
然后,可以通过您自己计算机上的简单 Apache 服务器来提供本地安装的存储库。
您可以选择创建个人包存档 (PPA),托管在 上,然后每个人都可以使用简单的add-apt-repository ppa:<repository_name>
命令进行访问。
如果您希望您的软件包发布到 Ubuntu 的 Universe/Multiverse 存储库中,这可能会变得很棘手,因为您应该获得 MOTU 的批准。想要将其发布到 main 吗?这需要满足很多条件,包括安全性和对维护标准的承诺。
META 包是只安装依赖项列表的包。
这就是您如何通过一个软件包安装整个桌面。
APT 是 Debian 及其衍生产品(包括 Ubuntu)使用的传统包管理系统。它于 1998 年首次亮相,使用.deb
软件包。
Snap 由 Canonical 于 2014 年推出,是一种较新的包管理器,旨在提供跨不同 Linux 发行版的更轻松的包分发。它将依赖项捆绑在每个.snap
包中,导致包大小更大,但减轻了“依赖地狱”。这在离线系统中尤其有用。
主要区别在于,snap 包侧重于跨发行版兼容性和自我包含性,通过包沙箱和自动更新可能会提供更好的安全性。另一方面,APT 依赖于系统范围的库,这使得包更小,但可能会导致依赖性问题。