我希望维护一个 debian 包的本地分支。我需要修补一个最终会在官方软件包中修复的错误,但不会持续一段时间。
如何创建 .deb 包,以及如何使用它来在本地使用我的错误修复?
有问题的包包含一些脚本文件。
有时在安装软件包时,aptitude 会推荐其他几个软件包。
有没有办法显示所有已安装软件包的所有以前推荐的软件包?
编辑:
感谢您到目前为止的答复。我已经尝试过:
aptitude show ~i | grep '^Recommends' | cut -d ' ' -f 2-
Run Code Online (Sandbox Code Playgroud)
那基本没问题。但它也提供了类似的东西:
console-setup | console-data (>= 2002.12.04dbs-1)
Run Code Online (Sandbox Code Playgroud)
我想要一种简单的方法来安装所有缺少的推荐软件包。
所以
aptitude install console-setup | console-data (>= 2002.12.04dbs-1)
Run Code Online (Sandbox Code Playgroud)
不会工作;-)
有没有办法在不手动检查所有条目的情况下做到这一点?
我一直试图了解这两个命令之间的区别,并注意到我得到了不同的结果。
apt-get install -t testing appX
apt-get install appX/testing
Run Code Online (Sandbox Code Playgroud)
背景
我按照https://serverfault.com/a/382101/132528设置了我的源列表和固定配置
目前的成果
root@home:/etc/apt# apt-cache policy i3
i3:
Installed: (none)
Candidate: 4.2-2
Version table:
4.8-1 0
750 http://debian.mirror.ac.za/debian/ testing/main amd64 Packages
750 http://ftp.us.debian.org/debian/ testing/main amd64 Packages
50 http://debian.mirror.ac.za/debian/ unstable/main amd64 Packages
50 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
4.8-1~bpo70+1 0
100 http://debian.mirror.ac.za/debian/ wheezy-backports/main amd64 Packages
4.2-2 0
995 http://debian.mirror.ac.za/debian/ wheezy/main amd64 Packages
995 http://debian.mirror.ac.za/debian/ stable/main amd64 Packages
995 http://ftp.us.debian.org/debian/ stable/main amd64 Packages
Run Code Online (Sandbox Code Playgroud)
它选择4.2-2,当做
apt-get install -t testing appX
Run Code Online (Sandbox Code Playgroud)
并且在做的时候选择4.8
apt-get install …Run Code Online (Sandbox Code Playgroud) 我需要通过 puppet 安装 exim4。因为这个安装需要交互配置,所以需要一个响应文件,但是不知道怎么生成。那么,如何生成响应文件呢?
无论如何要在基于 debian 的服务器上禁用/删除 apt-get。我更喜欢使用 aptitude,并且不希望其他用户使用 apt-get 安装包,以避免包/数据库问题。
我已经在 Ubuntu 上使用 apt-get 几年了,并尝试了几次 aptitude。我在一些博客中读到,一旦您在系统上使用了其中一种工具,就应该坚持使用它,而不是使用另一种,因为它们的工作方式不同,并且会导致问题。
现在,在阅读apt-get 和 aptitude 之间有什么区别?,我不明白为什么。
那么这是真的吗?在这种情况下,像 Ubuntu 这样的系统可能会在后台使用 apt-get 进行自动更新,是否甚至建议使用 aptitude ?
aptitude install mysql-server同时抛出一个提示,要求我设置 root 密码。我想通过在初始命令中指定密码来避免这种情况。我该怎么做呢?
有没有办法在 Debian 中获取通过 aptitude 安装的所有“主要”软件包?“main”是指通过安装命令提供给 aptitude 的包名称。相当于一个 Gentoo“世界”文件。
据我所知,您只能获得所有已安装软件包的列表,包括依赖项(从某个角度来看我并不真正关心)。我能想到的唯一另一种方法是解析 bash_history 文件以获取 aptitude 安装命令。
我正在编写一个脚本来执行一些apt命令,但我遇到了apt/dpkg数据库被锁定的潜在问题,因此我的脚本无法使用。我想/var/lib/dpkg/lock在做任何事情之前检查锁定文件(即),就像apt它运行它的命令一样,但我不知道如何apt执行锁定。
锁定文件始终存在,并且apt-get不会对该文件进行群集操作。否则将如何检查它是否在使用中?从strace我看到apt-get打开文件,但就是这样。在我的脚本中,我可以在打开文件的同时apt-get打开它。
# aptitude install supervisor
The following NEW packages will be installed:
python-medusa{a} python-meld3{a} supervisor
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/290 kB of archives. After unpacking 1,552 kB will be used.
Do you want to continue? [Y/n/?] Y
Selecting previously deselected package python-medusa.
(Reading database ... 35128 files and directories currently installed.)
Unpacking python-medusa (from .../python-medusa_0.5.4+clean-2ubuntu1_all.deb) ...
Selecting previously deselected package python-meld3.
Unpacking python-meld3 (from .../python-meld3_0.6.5-3build1_amd64.deb) ...
Selecting previously …Run Code Online (Sandbox Code Playgroud)