我有debian 更改日志文件。该文件的头部如下。my-package ($VERSION) UNRELEASED; urgency=low ...
. 当我重建包时,我需要从环境变量中获取版本。可能吗?
我正在尝试为上游源(尚未被 debian 打包)创建 debian 包,并且想知道是否可以在 .deb 包中自动配置在新语言环境中翻译的帮助页面。
要安装帮助页面,我们需要将内容复制source/help/C/
到/usr/share/help/C/packagename/
. 我可以通过将以下行添加到debian/install
help/C/* /usr/share/help/C/packagename/
如果添加了帮助页面的任何翻译,则还需要将它们复制source/help/LANG/
到可以是任何语言环境的/usr/share/help/LANG/packagename/
位置。LANG
debian/install
如何动态地实现这一点(使用通配符或类似的东西),以便在添加新语言环境的翻译时我们不必手动编辑?
debian/install
否则,每次有新语言的翻译可用时,我都必须手动添加一行。
我正在使用旧的 32 位 pc,我在它们上修复和安装 ubuntu 16.04,然后将它们提供给需要教育的孩子。
在 zoom.us 网站上找不到 zoom 32 位应用程序
有人在存档中有 zoom_i386.deb 文件吗?
我正在尝试根据本手册向我的 PPA 提交 deb:
https
://packaging.ubuntu.com/html/packaging-new-software.html
我可以bzr builddeb -- -nc -us -uc
使用bzr builddeb -S
. 但是pbuilder-dist groovy build myproject_0.2.8-1.dsc
in 的执行../build-area
失败。
完整日志可在 pastebin 中找到:https ://pastebin.com/whr6Qsd1
我相信问题出在以下部分:
Determining if the CXX compiler accepts the flag -fno-keep-inline-dllexport failed with the following output:
Change Dir: /build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/gmake cmTC_3ab02/fast && gmake[1]: Entering directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
/usr/bin/gmake -f CMakeFiles/cmTC_3ab02.dir/build.make CMakeFiles/cmTC_3ab02.dir/build
gmake[2]: Entering directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o
/usr/bin/c++ -std=c++0x -fno-keep-inline-dllexport -o CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o -c /usr/share/cmake-3.16/Modules/DummyCXXFile.cxx
c++: error: command-line option '-fno-keep-inline-dllexport' is not supported by this configuration
gmake[2]: *** [CMakeFiles/cmTC_3ab02.dir/build.make:66: CMakeFiles/cmTC_3ab02.dir/DummyCXXFile.cxx.o] Error 1
gmake[2]: Leaving directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
gmake[1]: *** [Makefile:121: cmTC_3ab02/fast] Error 2
gmake[1]: Leaving directory '/build/myapp-0.2.8/obj-x86_64-linux-gnu/CMakeFiles/CMakeTmp'
dh_auto_configure: error: cd obj-x86_64-linux-gnu && cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_RUNSTATEDIR=/run -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON "-GUnix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_LIBDIR=lib/x86_64-linux-gnu .. returned exit code 1
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
所以,cmake
正在检查是否/usr/c++
支持-fno-keep-inline-dllexport
. 编译器以 1 bcs 结尾,它不支持它,cmake 返回 2 和 dh_auto_configure painics。
如果我cmake
在我的系统上执行,我会得到以下标准输出:
-- Checking to see if CXX compiler accepts flag -ffunction-sections -fdata-sections -Wl,--gc-sections
-- Checking to see if CXX compiler accepts flag -ffunction-sections -fdata-sections -Wl,--gc-sections - yes
-- Checking to see if CXX compiler accepts flag -fno-keep-inline-dllexport
-- Checking to see if CXX compiler accepts flag -fno-keep-inline-dllexport - no
-- Checking to see if CXX compiler accepts flag -Werror=return-type
-- Checking to see if CXX compiler accepts flag -Werror=return-type - yes
所以即使是我系统上的编译器也不支持-fno-keep-inline-dllexport
. 我很好。对我来说没关系。cmake
不失败。
看起来,非强制特征检查失败会cmake
破坏整个pbuilder-dist
过程。有没有办法改变这种行为或者我错过了什么?
Ps 我的构建依赖是:debhelper-compat (= 13), cmake (>=2.8.9), gcc (>=4.6), qt5-qmake (>= 5.4), qtbase5-dev (>= 5.4), libtiff5-dev (>= 4.0.3), libjpeg8-dev (>= 8c), libpng-dev (>=1.6.2)
我在 Docker Registry 上有 2 个映像,所以我的要求是创建 Debian 包来提取这 2 个映像并在已安装的机器上运行。我的问题是如果我想使用 Docker 命令,Docker 应该安装在给定的机器上。所以Docker已经安装好了,然后我们就可以使用它了。否则,我必须在安装该 Debian 软件包时安装它。
我的DEBIAN/control
文件看起来像这样
Package: bla-bla
Version: 1.0
Architecture: all
Priority: optional
Maintainer: Bla Bla <[email protected]>
Installed-Size: 327000
Depends: unzip, curl, sqlite3, libsqlite3-dev, xdg-utils, apt-transport-https, ca-certificates, software-properties-common
Homepage: https://www.example.com/
Section: Network, Databases, Web Servers, JavaScript, Python;
Description: bla bla bla
我不时添加Docker
and docker
,但它没有用。所以我在文件中Depends
添加了以下行,preinst
function check_whether_docker_installed() {
service=docker
is_running=$(ps aux | grep -v grep | grep -v "$0" | grep $service | wc -l | awk '{print $1}')
if [ $is_running != "0" ]; then
echo -e "\nservice $service is running"
else
initd=$(ls /etc/init.d/ | grep $service | wc -l | awk '{ print $1 }')
if [ $initd = "1" ]; then
startup=$(ls /etc/init.d/ | grep $service)
echo -e "\nStarting Docker service"
/etc/init.d/${startup} start
echo "Docker service successfully started"
else
echo -e "\nService $service not yet installed, going to install it"
sudo apt update
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install -y docker-ce
sudo chmod +x /var/run/docker.sock
echo "Docker successfully installed, let's check it again"
check_whether_docker_installed
fi
fi
}
function download_and_install_docker_compose() {
which docker-compose
if [ $? -eq 0 ]; then
echo -e "\ndocker-compose is installed!"
else
echo -e "\ndocker-compose is not installed!"
sudo curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
echo "docker-compose is successfully installed, let's check it again"
download_and_install_docker_compose
fi
}
check_whether_docker_installed
download_and_install_docker_compose
sudo apt install -y docker-ce
这条线无法运行。它给了我以下错误。
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
chmod: cannot access '/var/run/docker.sock': No such file or directory
是的,我知道会发生这种情况,因为我已经在运行sudo apt install my_package.deb
安装我的包,所以不能sudo apt install
在我的包中运行另一个命令。我该如何解决这个问题?这应该是一次性的过程。
我为Blanket制作了一个debian 包,并尝试使用 Launchpad 配方构建它。
虽然它在我的计算机(Xubuntu 20.04)中成功构建,但无法在 Launchpad 中构建焦点。这是构建日志的相关部分。
Found ninja-1.10.0 at /usr/bin/ninja
dh_auto_build
cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v
[1/3] glib-compile-resources ../data/resources/blanket.gresource.xml --sourcedir ../data/resources --internal --generate --target data/resources/blanket.gresource --dependency-file data/resources/blanket.gresource.d
xml-stripblanks preprocessing requested, but XMLLINT is not set, and xmllint is not in PATH
[2/3] /usr/bin/meson --internal msgfmthelper ../data/com.rafaelmardojai.Blanket.metainfo.xml.in data/com.rafaelmardojai.Blanket.metainfo.xml xml ../data/../po
FAILED: data/com.rafaelmardojai.Blanket.metainfo.xml
/usr/bin/meson --internal msgfmthelper ../data/com.rafaelmardojai.Blanket.metainfo.xml.in data/com.rafaelmardojai.Blanket.metainfo.xml xml ../data/../po
msgfmt: cannot locate ITS rules for ../data/com.rafaelmardojai.Blanket.metainfo.xml.in
[3/3] /usr/bin/meson --internal msgfmthelper ../data/com.rafaelmardojai.Blanket.desktop.in data/com.rafaelmardojai.Blanket.desktop desktop ../data/../po
ninja: build stopped: subcommand failed.
在我的计算机中(当我运行时debuild
),输出的相关部分是
Found ninja-1.10.0 at /usr/bin/ninja
dh_auto_build
cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v
[1/3] glib-compile-resources ../data/resources/blanket.gresource.xml --sourcedir ../data/resources --internal --generate --target data/resources/blanket.gresource --dependency-file data/resources/blanket.gresource.d
xml-stripblanks preprocessing requested, but XMLLINT is not set, and xmllint is not in PATH
[2/3] /usr/bin/meson --internal msgfmthelper ../data/com.rafaelmardojai.Blanket.desktop.in data/com.rafaelmardojai.Blanket.desktop desktop ../data/../po
[3/3] /usr/bin/meson --internal msgfmthelper ../data/com.rafaelmardojai.Blanket.metainfo.xml.in data/com.rafaelmardojai.Blanket.metainfo.xml xml ../data/../po
dh_auto_test
cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 MESON_TESTTHREADS=4 ninja test
[0/1] Running all tests.
1/2 Validate desktop file OK 0.01 s
2/2 Validate schema file OK 0.01 s
Ok: 2
并且构建继续成功。正如this所建议的,我添加libappstream-glib-dev
到该build-depends
字段中,但这不起作用。
我在pbuilder
chroot 环境中遇到了同样的错误。当我在 Launchpad 中构建它时,我是否缺少一些构建依赖项?
我有一个 C++ 二进制应用程序,我将它打包到我的 Ubuntu 20.04 上的“deb”包中。这个“deb”包有几个我定义的依赖项:
$ dpkg -I my-package-1.0.0.deb
new Debian package, version 2.0.
...
Package: my-package
Version: 1.0.0
Architecture: amd64
Depends: libfreetype6,libgcc-s1,libgl1,libglew2.1,libglvnd0,libglx0,...
...
这个包运行良好,除非我尝试在 Ubuntu 18.04 上安装它:
$ sudo dpkg -i my-package-1.0.0.deb
Selecting previously unselected package my-package.
(Reading database ... 198305 files and directories currently installed.)
Preparing to unpack my-package-1.0.0.deb ...
Unpacking my-package (1.0.0) ...
dpkg: dependency problems prevent configuration of my-package:
my-package depends on libgcc-s1; however:
Package libgcc-s1 is not installed.
my-package depends on libglew2.1; however:
Package libglew2.1 is not installed.
这些错误包(libgcc-s1、libglew2.1)在 Ubuntu 18.04 中不存在或存在但版本不同。因此,我有一个普遍的问题:是否可以创建与多个版本的 Ubuntu 兼容的“deb”包?如何 ?或者唯一的解决方案是为每个版本的 Ubuntu(以及每个其他 Linux 发行版)构建一个包?当存在依赖项时,构建“deb”包最常用的策略是什么?
在我全新的 Ubuntu 20.04 安装(昨天刚刚安装)中,单击 GUI 文件管理器(例如 nautilus 或nemo )中的 *.deb 文件只会打开存档管理器,而不是像以前在 Ubuntu 上那样要求安装它18.04。一些站点,例如 this,说要右键单击 *.deb 文件并将“软件安装”设置为默认选项:
疑难解答:在 Ubuntu 20.04 软件中心双击 deb 文件无法打开
在 Ubuntu 20.04 中双击 deb 文件会在存档管理器而不是软件中心打开该文件。
这很奇怪,但很容易解决。您所要做的就是右键单击 deb 文件并选择 Open With 选项。在这里,选择打开方式
Software Install
作为默认选项。
但是,我没有“软件安装”选项。我做了一些挖掘,结果发现我也没有 Ubuntu 软件中心或 Snap Store。我该如何安装这些?以及如何修复 *.deb 文件的“软件安装”选项,因为它需要安装 Ubuntu 软件中心?
这些不回答我的问题,也不重复:
- 20.04 中缺少 Ubuntu 软件中心
- Ubuntu 软件无法在 Ubuntu 20.04 中打开
- [不回答我的问题,尽管它确实建议使用
gdebi
,这可能有用并且我将来可能会使用]在软件安装 Ubuntu 20.04 中安装 .deb 时出现问题 - https://itsfoss.com/cant-install-deb-file-ubuntu/