服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

如何在不启动相关服务的情况下安装软件包?

正如您可能已经知道的那样,默认情况下,当您在Debian或Ubuntu系统上安装软件包时,如果软件包包含服务,则通常在安装软件包时启用并自动启动该服务。 这对我来说是一个问题。 我发现自己需要pipe理构buildLXC容器的模板。 有几个容器,每个对应一个Debian或Ubuntu发行版。 (也有红帽的容器,但在这里没有关系。) /var/lib/libvirt/filesystems/debian6_template /var/lib/libvirt/filesystems/debian7_template /var/lib/libvirt/filesystems/ubuntu1004_template /var/lib/libvirt/filesystems/ubuntu1204_template 偶尔我会发现模板有一个丢失的包或需要一些其他的改变,所以我会chroot到他们来安装包。 不幸的是,当我这样做的时候,我发现了几个包的服务正在运行! 举个例子,我发现模板没有syslog守护进程,所以我安装了一个: for template in /var/lib/libvirt/filesystems/{debian,ubuntu}*_template; do chroot $template apt-get install rsyslog done 并迅速结束了rsyslog运行的四个副本。 更不用说exim4的两个副本了。 哎呀! 我读过某处(虽然现在再也找不到了),但是在chroot中运行时不应该启动服务,但是这显然没有发生。 一个潜在可行的讨厌的黑客要求临时replace实际启动服务的各种命令,比如start-stop-daemon和initctl ,虽然这比我真正想做的工作要多得多。 如果我没有别的select,虽然… 这里的理想解决scheme是基于Debian的系统停止做这个废话,但是如果没有这个,可能是apt-get一个模糊或者没有logging的命令行选项? 如果不清楚的话,如果可能的话,我真的想保留任何与pipe理模板之外的模板相关的东西。