我有一个用于安装的 deb 包。
我应该通过dpkg -i my.deb,还是通过 apt安装?
两者都能很好地处理软件依赖问题吗?
如果通过 apt,我如何通过 apt 从 deb 安装?
如何获取有关.deb包存档的信息?
像:包档案中的包信息、版本、安装大小、架构、描述和许可信息等.deb?
这个答案说明.msi和setup.exe安装在Windows上的应用程序文件。
是否有等同.msi,并setup.exe在Debian或者ubuntu文件?做.deb包文件对应.msi或者setup.exe还是其他什么东西?
有很多方法可以显示使用 手动安装的软件包apt,例如:
apt-mark showmanual
Run Code Online (Sandbox Code Playgroud)
但有时输出太多了。例如,如果用户手动安装包foo:
apt-get install foo
Run Code Online (Sandbox Code Playgroud)
...并foo依赖于barand baz,然后apt-mark showmanual会输出:
bar
baz
foo
Run Code Online (Sandbox Code Playgroud)
我们如何仅列出顶级手动安装的软件包(即 foo)而没有它们的依赖项(即not baz,nor bar)?
以下代码似乎有效,但GNU parallel调用apt-rdepends几百次太慢了,(4 核 CPU 需要三个小时):
apt-mark showmanual |
tee /tmp/foo |
parallel "apt-rdepends -f Depends,PreDepends,Suggests,Recommends {} |
tail +2" 2> /dev/null |
tr -s ' ' '\n' |
grep -v '[():]' |
sort -Vu |
grep -wv -f - /tmp/foo
Run Code Online (Sandbox Code Playgroud) 我想获取有关二进制包的详细信息并在 linux 上运行它们。我正在运行 Debian 基础(Ubuntu/Linux mint)Linux 操作系统。
我想写一个安装 bash 脚本,我想在其中安装 MySQL 服务器。
在 Linux Mint 上,我遵循了以下代码:
apt-get -y --force-yes install mysql-server-5.6
Run Code Online (Sandbox Code Playgroud)
但是我安装了新的 Debian 8 并且没有mysql-server- 而是有mariadb.
如何确定包是否存在?
我只知道有dpkg -s哪个应该告诉是否安装了一个包。
有没有办法使用 dpkg 查看包的不同版本之间的更改日志?
如果我想知道例如,为什么在最近的更新中升级了“passwd”,有没有办法使用 dpkg 来查看发生了什么变化?
$ dpkg -l passwd
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii passwd 1:4.2-3.1 amd64 change and administer password an
Run Code Online (Sandbox Code Playgroud)
它正在升级到 1:4.2-3.3...
我知道在 Debian 中,我可以查看软件包说明,并从那里查看链接的Debian 更改日志。
但这并不适用于所有基于 deb 的发行版,快速浏览一下新内容是很尴尬的。
.deb文件名的既定结构是package_version_architecture.deb.
根据这一段:
有些包不遵循名称结构
package_version_architecture.deb。由 dpkg-name 重命名的软件包将遵循此结构。通常这对 dselect/dpkg 安装软件包的方式没有影响,但其他安装工具可能依赖于这种命名结构。
但是,是否存在.deb强烈不建议重命名包文件的真实情况?.deb为我的软件提供自定义文件名是正常做法吗?
My Program for Linux v1.0.0 (Pro).deb — 自定义命名my-program_1.0.0-1_amd64.deb — 正确的官方命名我不打算创建一个存储库,我只是.deb在我的网站上托管我的软件包以供直接下载。
我有一个.debdebian 包,它本质上包含软件的二进制文件作为/usr/share/bin压缩data文件中的文件夹,以及另一个包含其他文件校验和的元数据压缩文件。
我的目标是创建一个PKGBUILD在 archlinux 上正确安装这样的 .deb 包。
这样做的正确方法是什么?
使用该函数将该/usr/share/bin目录的内容复制到pkg /usr/share/binfakeroot 环境中就足够了build()吗?/usr/share/bin实际安装构建的包时,文件夹会被复制到真实位置吗?
阅读debian openjdk-8 源码包的更新日志,我们看到有一个版本叫openjdk-8 (8u45-b14-4),下一个是openjdk-8 (8u60~b22-1)。
最后一个版本中的波浪号是什么意思?