Как добавить двоичный файл в существующий пакет PPA

Вот как я решил проблему (найденную в обсуждении на ubuntuforum.org). Я установил старый драйвер nvidia-173 И понизил xserver-xorg. После этого XBMC снова начали работать Unity и другие головоломки GPU.

1) /etc/apt/preferences.d/10xorg

Package: xorg xserver-xorg*
Pin: release a=oneiric
Pin-Priority: 1050
# So i can find dependencies for the older driver

2) / etc / X11 / xorg.conf

# New section
Section "Extensions"
Option "Composite" "Disable"
EndSection

3) установите nvidia-173, используя синаптические или apt-get

1
задан 18 July 2012 в 00:33

2 ответа

Просто получите dpkg-source --commit игнорировать двоичные файлы с помощью переключателя extend-diff-ignore

Вот еще один простой способ сделать это: вы в основном говорите, что dpkg-source игнорирует то, что он не может понять (т. е. двоичные файлы) и учитывать его собственный бизнес;)

После добавления двоичного файла (ов) в первый раз ключ должен использовать dpkg-source --commit с переключателем --extend-diff-ignore, вдоль с соответствующими путями / именами файлов для игнорирования (Perl regex format).

Например, предположим, что вы вставляете кучу PNG в каталог llyrics, а затем модифицируете некоторые текстовые файлы. Правильный вызов фиксации:

dpkg-source --commit --extend-diff-ignore="(^|/)(llyrics/.*\.png)$"

Следуйте за этим:

debuild -S --source-option=--include-binaries

, чтобы загрузить ваш PPA.

Давайте проверим это с пакетом rhythmbox-plugin-llyrics с «игровой площадки» fossfreedom:

Получить исходный код: apt-get source rhythmbox-plugin-llyrics Измените текстовый файл и добавьте PNG: $ cd rhythmbox-plugin-llyrics-0.1 $ echo FORCE-A-DIFF >> llyrics/README $ wget -Ollyrics/dancemonkeyboy.png \ http://www.samrethsingh.com/wp-content/uploads/2009/02/untitled-image.png ... `llyrics/dancemonkeyboy.png' saved [243304/243304] Добавьте в список изменений и увеличьте версию с помощью Зафиксируйте изменения текста, игнорируя PNG с помощью: $ dpkg-source --commit --extend-diff-ignore="(^|/)(llyrics/.*\.png)$" dpkg-source: info: local changes detected, the modified files are: rhythmbox-plugin-llyrics-0.1/llyrics/README Enter the desired patch name: PPABinaryTest dpkg-source: info: local changes have been recorded in a new patch: rhythmbox-plugin-llyrics-0.1/debian/patches/PPABinaryTest Создайте источник / изменения: $ debuild -S --source-option=--include-binaries ... dpkg-source: info: building rhythmbox-plugin-llyrics using existing ./rhythmbox-plugin-llyrics_0.1.orig.tar.gz dpkg-source: info: adding llyrics/dancemonkeyboy.png to debian/source/include-binaries ...

И ... вуаля! (Launchpad-built deb - отметьте разницу в размере 200k ...)

5
ответ дан 25 May 2018 в 08:34

Это немного сложнее, чем просто добавить файл.

Сначала вам нужно будет перестроить .orig.tar.gz с включенными двоичными файлами в новом исходном пакете и, вероятно, понадобится для увеличения версии программного обеспечения (package_1.0.0.orig.tar.gz -> package_1.0.1.orig.tar.gz или чего-то еще] как в tar, так и в debian/changelog.

После изменения файла orig.tar.gz с новыми файлами (do НЕ включать debian / files в orig.tar.gz), вы затем добавили бы запись debian/changelog, изменив версию, чтобы увеличить ее, как вы это делали с orig.tar.gz.

Затем перестройте исходный пакет (debuild -S) и загрузить новый исходный пакет в PPA. Этот новый исходный пакет перезапишет «более старый» в PPA.

Из чата:

@LordofTime ... wouldnt launchpad complain that its just received a different original source file


@fossfreedom not if you increment the version
new version, new source
@fossfreedom if you don't increment the version it'll explode
so you must increment the version
also, make individual debian packages for each release of ubuntu
and it'll not yell as much (it'll still enforce original version)
i.e.
"I am updating the NGINX PPA from 1.2.2 to 1.2.3. I need to get the 1.2.3 source, and work from that."
"I change the package, and the .orig.tar.gz, and upload the new package to Launchpad."
"If there are no build errors, then i'm done. If there is a build error, then I damned well better fix that error."
(then reupload with 1.2.3-2 or something)
but generally i do build testing in a staging repo
2
ответ дан 25 May 2018 в 08:34
  • 1
    Может быть, этот ответ выиграет, отредактировав его просто «если вы не увеличите версию, которую он взорвется»? – Jonas G. Drange 25 June 2014 в 21:31
  • 2
    Вы всегда можете предложить отредактировать ответ Jonas и прокомментировать, почему вы считаете, что редактирование полезно, и я и другие могут посмотреть на него и рассмотреть его. – Thomas Ward♦ 25 June 2014 в 21:33
  • 3
    К сожалению, я не знаком с системой упаковки Debian, и именно поэтому она взрывается вне меня. Редактирование, сделанное мной, было бы болезненно неадекватным. – Jonas G. Drange 26 June 2014 в 01:36

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

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