Вы можете использовать только ту версию CUDA, которая совместима с вашими драйверами. Вы можете проверить совместимость из примечаний к выпуску CUDA , для версии драйвера 390.116 самая высокая поддерживаемая версия CUDA — 9.1.
Вы можете загрузить различные версии с страницы загрузки CUDA . Вы можете загрузить файл запуска и установить необходимые компоненты в /usr/local
. Вам не следует не устанавливать драйвер, который предлагает установщик, так как он заменит драйвер, упакованный в ваш дистрибутив (и, возможно, позже )вызовет проблемы с управлением пакетами/обновлениями ядра.
Строка, возвращаемая curl
, заканчивается строкой возврата каретки --. (MS -конец строки dos ). Перевод строки -удаляется инструментами Unix, однако остается возврат каретки -в конце.
Исправьте эту строку, чтобы использоватьdos2unix
(и процитируйте свой аргумент в echo
, чтобы избежать ошибок, описанных в BashPitfalls #14):
version="$(echo "${tag//v}" | dos2unix)"
...или, используя встроенный -в синтаксис оболочки, чтобы принять оба изменения одновременно:
version=${tag//[$'v\r']/}
dos2unix
вносят некоторые другие изменения (, такие как добавление завершающей новой строки после последней строки текста, что требуется для UNIX, но не для DOS ), но ни одно из них не имеет значения для одной строки -, подобной этой.
ctrl -alt -делор ответ объясняет, почему вы видите такое поведение; но для достижения вашей основной цели я рекомендую использовать GitHub API вместо интерпретации «последнего» перенаправления:
version=$(curl https://api.github.com/repos/gohugoio/hugo/releases/latest | jq -r '.tag_name | ltrimstr("v")')
Это запрашивает у API информацию о последнем выпуске Hugo и извлекает имя тега, используя jq
, удаляя любую начальную букву «v».
В идеале вы даже должны извлекать имена ресурсов и URL-адреса из возвращенного JSON.