系统相关
首页 > 系统相关> > 为什么在某些Linux发行系统服务默认启用,而在其他情况下它不是?

为什么在某些Linux发行系统服务默认启用,而在其他情况下它不是?

作者:互联网

我注意到在Debian中通过apt-get进行软件包安装后,默认情况下会启用systemd中的服务.但是,在其他发行版(例如Arch Linux)中,默认情况下禁用该程序包中的服务.

我的问题是:

>这个行为取决于什么?它是包管理器中的某个设置还是包本身决定它是否启用?

我的意思是在Debian上看起来像systemctl启用docker.service在安装后执行.在Arch-linux上,docker.service被禁用.

>我该如何改变它?

解决方法:

As the systemd preset blurb states,这是经销商制定的政策选择:

On Fedora all services stay off by default, so that installing a package will not cause a service to be enabled (with some exceptions). On Debian all services are immediately enabled by default, so that installing a package will cause its service(s) to be enabled right-away.

理论上,systemd发行版使用预设系统来决定是否应该在软件包安装后启用服务,在软件包安装后维护脚本中运行systemctl预设而不是systemctl enable;并将本地覆盖应用于分发策略就像在/ etc / systemd / system-preset /中创建自己的更高优先级预设一样简单. (Arch doco在这里颇具误导性.通常的情况是创建一个单独的本地预设文件来解决特定服务.)

在实践中,一些systemd发行版不使用预设系统,并且将本地覆盖应用于systemd是使用发行版本身的机制,如果他们实际上有这样的话.

进一步阅读

>RaphaëlHertzog(2014-12-08). deb-systemd-helper does not respect systemd Preset files. Debian Bug#772555.
>“Enable installed units by default”. systemd.拱维基.

标签:linux,debian,systemd,arch-linux
来源: https://codeday.me/bug/20190816/1663226.html