Chi*_*ian 2 package-management
我很想知道是否可以在 Ubuntu 中禁用某些软件包,类似于我们如何在 Android 中冻结/禁用应用程序。
即该软件包已安装,但在重新激活之前无法使用。
注意我不是问“禁用更新”,我问的是“禁用包”。
如果可能,那我们怎么做呢?
Linux 不会启动您不需要的应用程序,而是像 Android 那样将它们保存在 RAM 中,以便它们可以接收推送消息等。所以冷冻包裹是没有必要的。
对于许多应用程序,如果您不启动该应用程序,它就不会运行。如果您想使用它,它仍然会得到更新。
如果你真的很想摆脱一个包,卸载它(并根据需要安装它)对于非必要的应用程序是可能的,但与其他 Linux 发行版一样,Ubuntu 上的包依赖于其他包,并且有其他包依赖因此,当您安装或删除一个包时,其他包可能会自动安装为依赖项(或替换)或删除,因为它们依赖于您删除的包。删除具有许多依赖项或系统正常运行所必需的包可能会非常严重地破坏系统。所有这些都由包管理系统处理。例如,要查看运行特定安装或删除命令时会发生什么,请使用APT 中的-s或--simulate选项
apt remove <package> -s
Run Code Online (Sandbox Code Playgroud)
这将显示无需实际执行任何操作即可完成的操作。
不过,有些程序确实作为服务在后台运行。在这些情况下,你可以使用systemctl命令(界面的一部分systemd来停止和禁用它们(禁用阻止服务在启动时启动)。再次,你需要在这里小心,因为服务也可能相互依赖并停止或禁用重要服务可能会对您系统的功能和稳定性产生负面影响。但是,systemd如果其他服务依赖它们,则会启动您已禁用的服务,因此这比包管理更不容易被破坏。
以下是有关如何停止、启用、禁用和启动服务的示例。
启用服务:
启用服务不会自动启动它;您需要为此使用start,或添加--now标志,或重新启动您的机器。使其生效。
sudo systemctl enable <service-name>
Run Code Online (Sandbox Code Playgroud)禁用服务:
禁用服务不会使其立即停止,您需要为此使用stop,或添加--now标志,或重新启动您的机器。
sudo systemctl disable <service-name>
Run Code Online (Sandbox Code Playgroud)启动服务:
启动服务并不会使其默认启用(这是该enable命令的用途),但如果可以启动,它会立即启动该服务。
sudo systemctl start <service-name>
Run Code Online (Sandbox Code Playgroud)停止服务:
停止服务不会禁用已启用的服务,但会暂时停止它直到下次重新启动。
sudo systemctl stop <service-name>
Run Code Online (Sandbox Code Playgroud)重启服务:
重新启动服务,但像startandstop命令一样不影响服务是否会在启动时加载和启动(由enable disable命令控制的行为。
sudo systemctl restart <service-name>
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
331 次 |
| 最近记录: |