我正在运行 Debian 10 (Buster)。我想运行一个 100% 免费的系统。但是,我需要一些非免费的固件包,因为我的硬件不是免费的。
因此,我想安装我的硬件所需的非免费固件包,但仅此而已。这可能意味着我将拥有非免费的硬件和固件,但以上的所有内容都是免费的。
如何为这些软件包启用非免费,但不让软件包管理器告诉我,或安装其他非免费软件包?
我也一直用equivs-control
create deb
s。因此,我的首选答案是如何创建一个取决于所需固件的非免费 deb。然后我可以安装该软件包,它将拉入固件包。然而,其他解决方案也将被接受。
答案1
感谢@StephenKitt,问题/答案如何使用适当的偏好来阻止非免费?和手册中,我发现了如何阻止非免费安装,除了指定的安装。然而,它们仍然列在搜索和 中apper
。
创建一个文件apt-preferences-non-free-policy
(请注意它包含我想要/需要的包),内容
#Explanation: don't install non-free, except some firmware
Package: *
Pin: release c=non-free
Pin-Priority: -10
Package: *
Pin: release c=contrib
Pin-Priority: -10
#################################################
#Specify individual packages
Package: intel-microcode
Pin: release c=non-free
Pin-Priority: 101
Package: firmware-iwlwifi
Pin: release c=non-free
Pin-Priority: 101
#This is a dependency of intel-microcode
Package: iucode-tool
Pin: release c=contrib
Pin-Priority: 101
创建文件apt-source-list-non-free.list
(更改您的发行版/版本),包含
deb http://deb.debian.org/debian/ buster non-free contrib
复制到位
sudo cp -t /etc/apt/preferences.d/ apt-preferences-non-free-policy
sudo cp -t /etc/apt/sources.list.d/ apt-source-list-non-free.list
查看
apt-cache policy
然后安装
sudo apt install intel-microcode firmware-iwlwifi