如何在没有互联网的情况下安装 dkms 包?

如何在没有互联网的情况下安装 dkms 包?

刚刚在我的笔记本电脑上安装了 Ubuntu 20.04,取代了 Windows 10。我的笔记本电脑的 WiFi 适配器 (RTL8821CE) 驱动程序没有自动安装,而且我没有以太网端口,所以我必须手动安装。我在网上找到了一个关于如何下载它的指南,但它假设我有互联网来下载 dkms。所以我想问一下我该如何手动下载它?

答案1

我认为你遵循的任何指南都说使用命令sudo apt install dkms。如果你无法像 Jeremy31 建议的那样绑定到手机或其他设备,你可以下载.deb 文件手动从Ubuntu 软件包网站相应版本,并通过闪存驱动器复制。然后您可以使用 进行安装sudo apt install /media/flashDriveName/package.deb

答案2

如果您的 wifi 在安装过程中正常工作,请使用您用于安装的实时 CD/USB 启动“尝试不安装”并配置互联网访问。安装您的驱动器,以便您可以访问您的主目录...并下载您的驱动程序和 dkms 并将它们放在您的下载文件夹(或任何地方)...apt-get download dkms是下载 dkms 包的命令。然后重新启动进入您的系统,您可以像sudo dpkg -i dkms-blah-blah.deb

话虽如此,我不能完全确定 dkms 没有一堆依赖项,我也不想在我的系统上卸载它并重新安装来找出答案... SOOOOO,您可能最终会来回尝试下载新的依赖项,您会被告知您需要这些依赖项以及依赖项的依赖项以及这些依赖项的依赖项.....如果最终是这种情况,我将附加一个下载依赖项脚本,这是我几年前在某处找到的,它可以很好地递归地拉下所有依赖项..

或者如果它基本上是一个全新安装,只需重新安装并在安装时检查从互联网框下载的更新(只有你相信,才会抓住你的 WIFI 驱动程序


依赖项下载脚本...
首先,如果这个脚本的创建者认识它,谢谢你,当我在离线网络上工作时,它为我节省了大量时间...我可能对它进行了调整,我真的不记得了...

vi 文件(或者您最喜欢的文本编辑器,我使用 vi)...vi dependencyscript.sh并添加以下行,然后保存并退出...确保该文件是可执行的chmod 755 dependencyscript.sh

#!/bin/bash
export MAXPARAMETERS=255

function array_contains_find_index() {
    local n=$#
    local i=0
    local value=${!n}

    for (( i=1; i < n; i++ )) {
        if [ "${!i}" == "${value}" ]; then
            echo "REMOVING $i: ${!i} = ${value}"
            return $i
        fi
    }
    return $MAXPARAMETERS
}

LIST=( $( apt-rdepends $1 | grep -v "^ " ) )
echo ${LIST[*]}
read -n1 -r -p "... Packages that will be downloaded (Continue or CTRL+C) ..."

RESULTS=( $( apt-get download ${LIST[*]} |& cut -d' ' -f 8 ) )
LISTLEN=${#LIST[@]}

while [ ${#RESULTS[@]} -gt 0 ]; do
    for (( i=0; i < $LISTLEN; i++ )); do
        array_contains_find_index ${RESULTS[@]} ${LIST[$i]}
        ret=$?

        if (( $ret != $MAXPARAMETERS )); then
            unset LIST[$i]
        fi
    done

    FULLRESULTS=$( apt-get download ${LIST[*]} 2>&1  )
    RESULTS=( $( echo $FULLRESULTS |& cut -d' ' -f 11 | sed -r "s/'(.*?):(.*$)/\1/g" ) )
done

apt-get download ${LIST[*]}

在你弄清楚要下载的软件包的名称(即 dkms)之后,你可以直接使用它,希望它应该将所有依赖包也一起拉下来。我建议创建一个文件夹并在里面运行它。
./dependencyscript.sh dkms
你最终会得到一个文件夹,里面装满了安装 dkms 所需的包(或你正在下载用于离线的任何包)……
希望所有这些都是不必要的

答案3

嘿,大家好,谢谢你们的回答,我真的很感激你们的帮助。我最终使用了蓝牙网络共享(我之前不知道我可以这样做),通过“软件和更新”下载了驱动程序,然后重新启动了我的设备。我不明白安全启动是如何工作的,所以适配器要过一段时间才会出现,直到我意识到我需要在安全启动中授权它(注册 muc 或其他)。这解决了问题,我现在可以使用 wi-fi 了,谢谢大家!

相关内容