Как преобразовать установщик драйвера Nvidia в deb?

Короткий ответ: no.

Несколько более длинный ответ заключается в том, что расширения Chrome не будут работать с Firefox, и наоборот. Тем не менее, вы можете найти расширение Firefox, которое выполняет более или менее одно и то же задание, но я не слышал об одном подобном chromify-osd.

5
задан 3 May 2012 в 14:35

5 ответов

Если нет структурных различий, то в новой версии должно быть возможно повторно использовать текущую упаковку:

NEWVERSION=302.13
DIR=nvidia-graphics-drivers-"$NEWVERSION".orig/
## Making a new tarball
mkdir $DIR
# Copy in new run files
cp NVIDIA*.run $DIR
tar --owner=root --group=src -caf nvidia-graphics-drivers_"$NEWVERSION".orig.tar.gz $DIR
rm -r $DIR

## Setting up the packaging source
apt-get source nvidia-graphics-drivers
cd nvidia-graphics-drivers*/
# Remove old run files and copy in new
rm NVIDIA*.run
cp ../NVIDIA*.run .
# This version number should ensure it gets replaced by official version...
dch -v $VERSION-1 "my release"; dch -l~mybuild "local build"; dch -r

## Installing build-dependencies
mk-build-deps
sudo dpkg -i nvidia-graphics-drivers-build-deps*.deb; apt-get install -f

## Building
debuild -us -uc

Что-то вроде этого может работать, есть довольно много проблем, что я почему PPA-пакеты не выпускаются мгновенно;)

6
ответ дан 25 May 2018 в 11:58
  • 1
    Действительно, упаковка новых версий может быть немного сумасшедшей. Особенно, когда вы меняете номер версии восходящего потока и не отражаете это в файлах debian control / changelog. Поэтому для сборки пакетов иногда требуется немного времени. Кроме того, у PPA есть сводные баллы, которые определяют, как с помощью приоритетов создается пакет, поскольку все PPA используют один и тот же построитель (ы). – Thomas Ward♦ 13 June 2012 в 17:42
  • 2
    apt-get source принимает опции, такие как --diff-only, которые избавляют вас от загрузки бесполезного файла 75MiB .orig.tar.gz. См. мой ответ – Lekensteyn 18 November 2012 в 16:46
  • 3
    Хороший вопрос о -diff-only. Я думаю, что подобные инструкции тоже будут устаревать довольно быстро (например, изменение упаковки с помощью XvMCConfig, упомянутого в вашем ответе). Ваша версия немного более надежна в этом смысле, я предполагаю, так как это более объяснительно. Хотя, как всегда, наиболее надежным было бы указать на новую версию и политику Debian :) – arand 18 November 2012 в 18:47
  • 4
    Как указано в debian / nvidia-current.README.Debian, вы должны запустить debclean перед запуском debuild для обновления необходимых переменных. Редактировать: debuild автоматически запускает debclean, поэтому это, по-видимому, не обязательно. – Axel 9 January 2013 в 17:50

Если нет структурных различий, то в новой версии должно быть возможно повторно использовать текущую упаковку:

NEWVERSION=302.13
DIR=nvidia-graphics-drivers-"$NEWVERSION".orig/
## Making a new tarball
mkdir $DIR
# Copy in new run files
cp NVIDIA*.run $DIR
tar --owner=root --group=src -caf nvidia-graphics-drivers_"$NEWVERSION".orig.tar.gz $DIR
rm -r $DIR

## Setting up the packaging source
apt-get source nvidia-graphics-drivers
cd nvidia-graphics-drivers*/
# Remove old run files and copy in new
rm NVIDIA*.run
cp ../NVIDIA*.run .
# This version number should ensure it gets replaced by official version...
dch -v $VERSION-1 "my release"; dch -l~mybuild "local build"; dch -r

## Installing build-dependencies
mk-build-deps
sudo dpkg -i nvidia-graphics-drivers-build-deps*.deb; apt-get install -f

## Building
debuild -us -uc

Что-то вроде этого может работать, есть довольно много проблем, что я почему PPA-пакеты не освобождаются мгновенно;)

6
ответ дан 10 August 2018 в 07:28

Как сказал аранд, вы можете использовать существующие исходные пакеты, полагая, что он не слишком сильно изменился. Следующие команды загружают файл .run, извлекают и адаптируют существующие исходные файлы и, наконец, упаковывают его.

Подготовьтесь к установке, установив некоторые зависимости сборки:

sudo apt-get build-dep nvidia-graphics-drivers
sudo apt-get install execstack # needed but not included with build-deps

Чтобы подготовить, установите некоторые переменные, которые управляют загружаемыми файлами, и создайте для него новый каталог:

VER=310.19
mkdir nvidia-graphics-drivers-$VER; cd nvidia-graphics-drivers-$VER

Загрузите файл с именем NVIDIA-Linux-x86-310.19.run, если вы еще этого не сделали. Если у вас есть 64-разрядная машина, вы также должны загрузить 64-разрядный установщик, названный как NVIDIA-Linux-x86_64-310.19-no-compat32.run:

wget ftp://download.nvidia.com/XFree86/Linux-x86/$VER/NVIDIA-Linux-x86-$VER.run
wget ftp://download.nvidia.com/XFree86/Linux-x86_64/$VER/NVIDIA-Linux-x86_64-$VER-no-compat32.run

Теперь извлеките упаковочные файлы, «извлеките» его, измените версию номер и построить пакет без его подписания:

apt-get source --diff-only nvidia-current
gunzip -c *.diff.gz | patch -p1
dch -v $VER-0~local "New upstream release."

Теперь, на момент написания этой статьи, версия 295.40-0ubuntu1.1 не построила 310.19, потому что упаковка изменилась. Оказывается, файлы libXvMCNvidia.* были удалены, поэтому давайте удалим эти строки, в том числе XvMCConfig:

sed -i '/XvMC/d' debian/{*.links*.in,*.install.in,rules}

Постройте пакет:

dpkg-buildpackage -b -uc -us

Если все пойдет хорошо, вы теперь должен иметь возможность установить полученный файл deb с помощью:

sudo dpkg -i ../nvidia-current_$VER-*.deb; sudo apt-get install -f

(команда sudo apt-get install -f является необязательной, если вы уже установили nvidia-current и не сталкивались с проблемами зависимостей) [!d8 ]

2
ответ дан 25 May 2018 в 11:58

Эти драйверы на самом деле зависят от более новых ядер и т. д., поэтому в этом случае вы не сможете просто перекомпилировать - для полного описания, включая PPA, см. этот ответ

0
ответ дан 25 May 2018 в 11:58

Как сказал аранд, вы можете использовать существующие исходные пакеты, полагая, что он не слишком сильно изменился. Следующие команды загружают файл .run, извлекают и адаптируют существующие исходные файлы и, наконец, упаковывают его.

Подготовьтесь к установке, установив некоторые зависимости сборки:

sudo apt-get build-dep nvidia-graphics-drivers
sudo apt-get install execstack # needed but not included with build-deps

Чтобы подготовить, установите некоторые переменные, которые управляют загружаемыми файлами и создадут для него новый каталог:

VER=310.19
mkdir nvidia-graphics-drivers-$VER; cd nvidia-graphics-drivers-$VER

Загрузите файл с именем NVIDIA-Linux-x86-310.19.run, если вы еще этого не сделали. Если у вас 64-разрядная машина, вы также должны загрузить 64-разрядный установщик, который называется NVIDIA-Linux-x86_64-310.19-no-compat32.run:

wget ftp://download.nvidia.com/XFree86/Linux-x86/$VER/NVIDIA-Linux-x86-$VER.run
wget ftp://download.nvidia.com/XFree86/Linux-x86_64/$VER/NVIDIA-Linux-x86_64-$VER-no-compat32.run

Теперь извлеките упаковочные файлы, «извлеките» его, измените версию номер и построить пакет без его подписания:

apt-get source --diff-only nvidia-current
gunzip -c *.diff.gz | patch -p1
dch -v $VER-0~local "New upstream release."

Теперь, на момент написания этой статьи, версия 295.40-0ubuntu1.1 не создает 310.19, потому что упаковка изменилась. Оказывается, файлы libXvMCNvidia.* были удалены, поэтому давайте удалим эти строки, включая XvMCConfig:

sed -i '/XvMC/d' debian/{*.links*.in,*.install.in,rules}

Постройте пакет:

dpkg-buildpackage -b -uc -us

Если все пойдет хорошо, вы должен теперь иметь возможность установить полученный файл deb с помощью:

sudo dpkg -i ../nvidia-current_$VER-*.deb; sudo apt-get install -f

(команда sudo apt-get install -f является необязательной, если вы уже установили nvidia-current и не сталкивались с проблемами зависимостей)

2
ответ дан 31 July 2018 в 12:30

Другие вопросы по тегам:

Похожие вопросы: