【发布时间】:2020-03-07 03:17:28
【问题描述】:
我想创建可以安装在开箱即用的 Ubuntu 上的 .deb 文件。
我已经准备好了 control、preinst、postinst 文件。但是当我尝试在新的 Ubuntu 上安装我的软件包时,它会说“无法获得锁 /var/lib/dpkg/lock”。我知道当人们想要同时安装不同的软件时,这是一个常见的问题。但是如何安装python3-pip和nginx呢?
当然,我可以创建 2 个文件:mysofr.deb 和 install.sh。但关键是只有一个文件,所以用户可以只用一个命令安装我的软件。
这是我的任务:
dpkg -s "python3-pip" >/dev/null 2>&1 && {
echo "python3-pip is installed."
echo
} || {
echo "ERROR: python3-pip is not installed. Now it will be installed from default repo"
# rm /var/lib/dpkg/lock
# dpkg --configure -a
sudo apt install python3-pip
}
如您所见,我已尝试解锁 dpkg。但在安装过程中这样做是个坏主意。
这是我的帖子:
#!/bin/bash
cd *directory*
dpkg -i nginx_1.14.2-1_stretch_amd64.deb
rm nginx_1.14.2-1_stretch_amd64.deb
systemctl enable nginx
service nginx start
简而言之:我想创建可以检查是否有 python3-pip 和 nginx 以及是否没有这样的软件的 deb - 安装它:来自 .deb 文件的 nginx,来自默认 repo 的 python3-pip。
【问题讨论】:
-
声明式而不是命令式:不要自己安装依赖项——在包元数据中声明依赖项。
标签: linux ubuntu debian deb dpkg