Articles of dpkg

停止包升级时删除符号链接的dpkg

我有一个debian软件包,它将文件安装到/usr/local/java/jre/lib/ext ,其中/usr/local/java是实际安装jvm的符号链接,在本例中为/usr/lib/jvm/java-6-sun 。 这个软件包的新版本在别处安装了jar。 问题是安装新版本会导致dpkg自己尝试整理,最后删除/usr/local/java符号链接。 这是一个非常不受欢迎的状态,即使是暂时的。 我一直无法finddpkg标志,说服它离开符号链接,并且似乎不可能在符号链接上设置不可变的位。 以下是对debian包assembly置的更改: diff –git a/debian/dirs b/debian/dirs — a/debian/dirs +++ b/debian/dirs @@ -1 +1 @@ -usr/local/java/jre/lib/ext +usr/share/java diff –git a/debian/rules b/debian/rules — a/debian/rules +++ b/debian/rules @@ -30,7 +30,7 @@ install: build # Add here commands to install the package into debian/tmp. # $(MAKE) pure_install – cp thejar.jar $(TMP)/usr/local/java/jre/lib/ext + cp […]

如何在多个(Linux)服务器上监视软件包版本

我们使用Puppet来安装基本级别的操作系统和软件包,但我们自己的应用程序软件包是由各个开发人员手动部署的。 我正在寻找一个networking仪表板来查看/监控所有机器上的软件包版本。 有没有人遇到过这样的事情? puppet-dashboard项目很有趣,但它提供了一个以节点为中心的视图,而我想在课堂上看到 Server 1 | Server 2 | Server 3 pkg1 v1.2 | v1.2 | *v1.3* pkg2 v.09 | v.09 | v.09 谢谢!

在Ubuntu上安装PostgreSQL而不启动它

我想在Ubuntu 10.4(或任何Linux发行版)上安装PostgreSQL 8.4(或任何服务),而不将它作为安装的一部分启动。 现在当我做一个 sudo apt-get install postgresql-8.4 部分安装过程是 Starting PostgreSQL 8.4 database server [ OK ] 我真的不希望PostgreSQL启动只是因为我正在安装它,因为我希望有机会在第一次启动它之前更改一些configuration文件。 任何想法如何做到这一点,或者如果有可能呢? 谢谢,埃弗里特

在Ubuntu 10.04上安装dpkg错误

我试图在ppa:nginx/stable上安装nginx ppa:nginx/stable在Lucid后,删除来自默认源,但我得到这个错误: 设置nginx-common(0.8.54-4ppa13〜lucid)… dpkg:error handlingnginx-common(–configure): 安装后的subprocess脚本返回错误退出状态1 dpkg:依赖关系问题阻止configurationnginx-full: nginx-full取决于nginx-common(= 0.8.54-4ppa13〜lucid); 然而: 软件包nginx-common尚未configuration。 dpkg:error handlingnginx-full(–configure): 依赖问题 – 留下未configuration dpkg:依赖关系问题阻止了nginx的configuration: nginx依赖于nginx-full; 然而: 软件包nginx-full尚未configuration。 dpkg:处理nginx错误(–configure): 依赖问题 – 留下未configuration 处理过程中遇到错误: nginx的常见 nginx的全 nginx` 我已经尝试apt-get clean,dpkg –configure -a,apt-get -f install nginx-common,但没有任何帮助。 我错过了什么吗? 这是dpkg-query -W -f='${Package}\t${Version}\n' nginx* `nginx 0.8.54-4ppa13〜清楚 nginx-common 0.8.54-4ppa13〜清楚 nginx的,额外 nginx-full 0.8.54-4ppa13〜清楚 nginx的-light`

如何在安装软件包时使用dpkg-divert临时删除/replace符号链接?

默认的nginx包在sites-enabled dir中创build一个名为default的符号链接,它指向sites-available的默认configuration文件。 我目前正在为一个位于Nginx之上的应用程序创build一个包,并且我想删除或移走default符号链接,并将其replace为我的包中的configuration文件。 理想情况下,如果我的软件包被删除,原来的default符号链接将被恢复。 我一直在阅读dpkg-divert的manpage和examples,但是我不太明白它可以做到这一点。 用dpkg-divert可以实现吗,还是需要另外想一想?

当本地用户名与networking用户名冲突时该怎么做

我们使用Puppet来pipe理我们的Linux桌面机器和SSSD,以使我们的用户通过中央authentication系统进行authentication。 最近当我们build立了几台新机器的时候,我们发现木偶在安装软件包的过程中正在停止。 罪魁祸首是kdm包,当最近一个“kdm”用户名被添加到中央机构时,它试图添加一个本地“kdm”用户。 通常情况下,我发现这个问题是通过命名空间分割机制(比如Windows域)来处理的,但是我在Linuxpipe理中的短暂时间并不能真正帮助我find一个好办法。 我可以想出如何解决这个问题的一些一般想法(最优雅到最不优雅): 找出从中央用户名划分系统用户名的一个好方法,这样以后的冲突就不成问题了。 使用dpkg标志强制kdm包添加一个不同的用户名(或使用nobody)。 强制dpkg添加用户。 这将不允许用户login到我们的系统,但这很可能不会成为问题。 当然,(2)和(3)并没有解决潜在的问题,但是如果(1)式中的解决scheme对我们目前的设置造成特别的损害,则像(2)或(3) 。

跳过dpkg-genchange步骤(Debian)

我正在构build二进制包: dpkg-buildpackage -b -us -uc 生成实际上运行成功,但我已经删除了以前的版本的包,现在dpkg-genchanges抱怨: dh_builddeb dpkg-deb: building package `zzz' in `../zzz_01-4_amd64.deb'. dpkg-genchanges -b >../zzz_01-4_amd64.changes dpkg-genchanges: binary-only upload – not including any source code dpkg-genchanges: error: cannot fstat file ../zzz_01-1_amd64.deb: No such file or directory dpkg-buildpackage: error: dpkg-genchanges gave error exit status 2 有什么办法可以跳过这一步吗? 我真的不需要它,因为我正在构build本地使用的deb包,以前的版本是不必要的。

权限神秘 – apt-get和其他系统实用程序拥有000个权限

我试图追查这个奇怪的行为多年。 总是在安装软件更新之后,许多系统工具的权限被破坏,如下所示。 我有理由相信,机器不是别人拥有的。 定期安全更新+ grsecurity内核+ pax +日常rkhunter运行。 除此之外,攻击者没有动力以这样明显的方式摆弄系统。 我安装了bastille linux( http://bastille-linux.sourceforge.net/ ),并试图在以后卸载,所以问题可能与此有关。 但是,我不知道如何在更新后以常规方式发生这种情况。 系统:Ubuntu 10.04,最近更新到Ubuntu 12.04,但问题依然存在。 在/etc/apt/ Apt-Configuration看起来对我来说是合理的。 但是,尽pipe如此,这可能是麻烦的根源吗? DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure –apt || true";}; DPkg::Post-Invoke { "if [ -x /usr/bin/debsums ]; then /usr/bin/debsums — generate=nocheck -sp /var/cache/apt/archives; fi"; }; // Makes sure that rkhunter file properties database is updated // after each remove or install […]

厨师食谱安装清漆3.0在Ubuntu的清醒?

这是我的问题。 我想要Varnish 3.0,但是Lucid只有2.1包可用。 因此,使用Chef,我需要制作一个安assembly方,将varnish-cache.org存储库添加到apt源,并安装varnish-3.0软件包。 (我有select从源(右?),但如果我这样做,我不会得到/etc/init.d脚本(右?))。 所以我正在编写一个apt_install.rb配方,这可能会添加存储库: apt_repository "varnish-3.0" do uri "http://repo.varnish-cache.org/ubuntu/" repo_name "varnish-3.0" distribution "lucid" components ["varnish-3.0"] key "http://repo.varnish-cache.org/debian/GPG-key.txt" deb_src true action :add end 实际上,这在/etc/apt/sources.list.d中添加了一个varnish-3.0-source.list文件,它说: # Created by the Chef apt_repository LWRP deb http://repo.varnish-cache.org/ubuntu/ lucid main 然后我有 package "varnish" do source "http://repo.varnish-cache.org/ubuntu/" action :install end 继续在我的服务器上安装2.1版本,而不是3.0。 如果我在软件包块中指定了一个“版本”,我会得到“未find版本”。 我在这里错过了什么? 这一定很简单。

在Ubuntu中生成已安装的软件包列表

我想在Ubuntu中备份我手动select的软件包列表,而不列出作为依赖项安装的软件包。 例如, dpkg –get-selections 返回所有已安装软件包的完整列表,以及依赖关系。 我如何过滤依赖关系?