在过去,我总是使用tasksel来安装所谓的“任务”。然而,这似乎已被纳入防止酷刑协会:
apt-cache dumpavail | grep ^Task
[...] snip
Task: lamp-server
[...]并且我可以通过在其上附加一个插入符(^)来安装这样的“任务”,如下所示:
sudo apt-get install lamp-server^这是否相当于以下内容?
sudo tasksel install lamp-server哪一种更好?
另外,元包是如何在这里发挥作用的?有些任务似乎不是元打包,而其他任务则是:
apt-cache show lamp-server
N: Unable to locate package lamp-server
apt-cache show kubuntu-desktop
Package: kubuntu-desktop
[...]
Task: kubuntu-desktop因此,使用最后一个例子,以下三种可能的安装方式有什么区别?
sudo apt-get install kubuntu-desktopsudo apt-get install kubuntu-desktop^sudo tasksel install kubuntu-desktop发布于 2013-02-17 02:38:36
简而言之:任务的任务和apt-get安装过程是有区别的。
看看你的例子:
sudo apt-get install 'lamp-server^'将评估执行以下操作:
sudo tasksel install lamp-server将在其/usr/share/tasksel/**/*.desc下的一个配置文件中查找名为"lamp-server“的任务:
/usr/lib/tasksel/info/lamp-server.preinst。如果它存在,请执行此脚本。/usr/lib/tasksel/info/lamp-server.postinst。如果它存在,请执行此脚本。在处理和选择任务方面,tasksel更强大。它可以在安装/删除任务之前/之后执行额外的脚本。最大的好处是:您可以很容易地修改任务并创建新的任务。编辑一个正式的软件包列表文件是不可能的,没有缺点(有效签名)。
回到你的第一个问题:
在特殊情况下,这两个命令几乎是等价的(假设您同时启用了APT::Install-Recommends和APT::Get::AutomaticRemove)。唯一的区别是mysql-server和apache2依赖项的扩展包状态(通过普通apt设置为“手动安装”)。
如果您不使用tasksel的特性,比如选择任务(特别有助于安装),以及在某些任务块之前和之后执行额外的命令,那么任务非常类似于元打包。不同之处在于:任务没有注册为APT缓存中的包。
因此,如果您卸载一个任务依赖项,其他任务dep就不会被标记为自动安装,因为它们是明确安装的。如果卸载元打包,则依赖项将使用autoremove删除,因为它们的扩展包状态是“自动安装”(如果不是手动安装的话)。
注意: Debian中的所有分布式任务都安装了一个名为task-TASKNAME的元包。
举你的例子:
sudo apt-get install kubuntu-desktop kubuntu-desktop。依赖项是“自动安装”。sudo apt-get install kubuntu-desktop^ kubuntu-desktop的依赖项。它们都被标记为“手动安装”。sudo tasksel install kubuntu-desktop kubuntu-desktop。依赖项是“自动安装”。https://askubuntu.com/questions/252056
复制相似问题