Различия в разных версиях одного и того же пакета debian

Есть ли способ получить исходные различия между локально установленным пакетом и его обновленным?

Например, предположим, что в вашей системе установлен пакет linux-libc-dev и

sudo apt-get update && sudo apt-get upgrade

показывает

The following packages will be upgraded: linux-libc-dev

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

Как мы можем сделайте это?

10
задан 22 October 2010 в 03:17

50 ответов

Вот еще одно решение, которое я взломал вместе: whatchanged.

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

./whatchanged python_papyon

Это то, что он делает:

Проверьте, есть ли кандидат на обновление; exit, если нет. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них. Сравните два с debdiff и выведите на stdout (вы, вероятно, захотите перенаправить для более легкого чтения) Очистите временные каталоги.

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

Редактировать: вместо того, чтобы позволить ему гнить на pastebin, я начал whatchanged ! d1]; вы можете получить последнюю версию сундука с помощью bzr branch lp:whatchanged. Не стесняйтесь сообщать об ошибках, вставлять их, переписывать в Perl и т. Д.

5
ответ дан 26 May 2018 в 00:55
  • 1
    Как мило! Разработка инструментов в качестве ответов;) Как и вы, стиль кодирования, но правильно закодировал его в perl .. – LassePoulsen 25 October 2010 в 01:42
  • 2
    Благодаря; надеюсь, что это полезно. То, как упаковывают и выпускают технические детали, иногда делает открытый код кажущимся непрозрачным, - это то, что было у меня на уме, и я не нашел простых инструментов для преодоления этого, поэтому кто-то, выражающий потребность в том же самом, был хорошей мотивацией, чтобы, наконец, сделайте примитивную. – mgunes 25 October 2010 в 14:22

Вот еще одно решение, которое я взломал вместе: whatchanged.

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

./whatchanged python_papyon

Это то, что он делает:

Проверьте, есть ли кандидат на обновление; exit, если нет. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них. Сравните два с debdiff и выведите на stdout (вы, вероятно, захотите перенаправить для более легкого чтения) Очистите временные каталоги.

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

Редактировать: вместо того, чтобы позволить ему гнить на pastebin, я начал whatchanged ! d1]; вы можете получить последнюю версию сундука с помощью bzr branch lp:whatchanged. Не стесняйтесь сообщать об ошибках, вставлять их, переписывать в Perl и т. Д.

5
ответ дан 25 July 2018 в 23:03

Вот еще одно решение, которое я взломал вместе: whatchanged.

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

./whatchanged python_papyon

Это то, что он делает:

Проверьте, есть ли кандидат на обновление; exit, если нет. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них. Сравните два с debdiff и выведите на stdout (вы, вероятно, захотите перенаправить для более легкого чтения) Очистите временные каталоги.

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

Редактировать: вместо того, чтобы позволить ему гнить на pastebin, я начал whatchanged ! d1]; вы можете получить последнюю версию сундука с помощью bzr branch lp:whatchanged. Не стесняйтесь сообщать об ошибках, вставлять их, переписывать в Perl и т. Д.

5
ответ дан 31 July 2018 в 10:56

Вот еще одно решение, которое я взломал вместе: whatchanged.

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

./whatchanged python_papyon

Это то, что он делает:

Проверьте, есть ли кандидат на обновление; exit, если нет. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них. Сравните два с debdiff и выведите на stdout (вы, вероятно, захотите перенаправить для более легкого чтения) Очистите временные каталоги.

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

Редактировать: вместо того, чтобы позволить ему гнить на pastebin, я начал whatchanged ! d1]; вы можете получить последнюю версию сундука с помощью bzr branch lp:whatchanged. Не стесняйтесь сообщать об ошибках, вставлять их, переписывать в Perl и т. Д.

5
ответ дан 31 July 2018 в 11:55

Вот еще одно решение, которое я взломал вместе: whatchanged .

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

  ./ whatchanged python_papyon  

Это то, что он делает:

  1. Проверьте, есть ли кандидат на обновление; exit, если нет
  2. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них
  3. Сравните два с debdiff [ ! d4] и вывод в stdout (вы, вероятно, захотите переадресовать для упрощения чтения)
  4. Очистите временные каталоги.

Вероятно, нужно лучше обработать определенные вещи, которые могут пойти не так во время поиска источника, управление потоком, вероятно, немного не работает, и должны быть более элегантные способы проверки версий, но в то же время он отлично работал в моем ограниченном тестировании. Пока, подумайте, что это быстрый хак, который работает, и улучшения наиболее приветствуются.

Редактировать: вместо того, чтобы позволить ему гнить на пастебине, я запустил Launchpad, и я запустил его в репозиторий bzr и / или создаю проект Launchpad, если он полезен для нескольких человек. проект ; вы можете получить последнюю версию сундука с помощью bzr branch lp: whatchanged . Не стесняйтесь сообщать об ошибках , вставлять их, переписывать в Perl и т. Д.

5
ответ дан 2 August 2018 в 04:24

Вот еще одно решение, которое я взломал вместе: whatchanged .

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

  ./ whatchanged python_papyon  

Это то, что он делает:

  1. Проверьте, есть ли кандидат на обновление; exit, если нет
  2. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них
  3. Сравните два с debdiff [ ! d4] и вывод в stdout (вы, вероятно, захотите переадресовать для упрощения чтения)
  4. Очистите временные каталоги.

Вероятно, нужно лучше обработать определенные вещи, которые могут пойти не так во время поиска источника, управление потоком, вероятно, немного не работает, и должны быть более элегантные способы проверки версий, но в то же время он отлично работал в моем ограниченном тестировании. Пока, подумайте, что это быстрый хак, который работает, и улучшения наиболее приветствуются.

Редактировать: вместо того, чтобы позволить ему гнить на пастебине, я запустил Launchpad, и я запустил его в репозиторий bzr и / или создаю проект Launchpad, если он полезен для нескольких человек. проект ; вы можете получить последнюю версию сундука с помощью bzr branch lp: whatchanged . Не стесняйтесь сообщать об ошибках , вставлять их, переписывать в Perl и т. Д.

5
ответ дан 4 August 2018 в 20:56

Вот еще одно решение, которое я взломал вместе: whatchanged .

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

  ./ whatchanged python_papyon  

Это то, что он делает:

  1. Проверьте, есть ли кандидат на обновление; exit, если нет
  2. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них
  3. Сравните два с debdiff [ ! d4] и вывод в stdout (вы, вероятно, захотите переадресовать для упрощения чтения)
  4. Очистите временные каталоги.

Вероятно, нужно лучше обработать определенные вещи, которые могут пойти не так во время поиска источника, управление потоком, вероятно, немного не работает, и должны быть более элегантные способы проверки версий, но в то же время он отлично работал в моем ограниченном тестировании. Пока, подумайте, что это быстрый хак, который работает, и улучшения наиболее приветствуются.

Редактировать: вместо того, чтобы позволить ему гнить на пастебине, я запустил Launchpad, и я запустил его в репозиторий bzr и / или создаю проект Launchpad, если он полезен для нескольких человек. проект ; вы можете получить последнюю версию сундука с помощью bzr branch lp: whatchanged . Не стесняйтесь сообщать об ошибках , вставлять их, переписывать в Perl и т. Д.

5
ответ дан 6 August 2018 в 04:28

Вот еще одно решение, которое я взломал вместе: whatchanged .

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

  ./ whatchanged python_papyon  

Это то, что он делает:

  1. Проверьте, есть ли кандидат на обновление; exit, если нет
  2. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них
  3. Сравните два с debdiff [ ! d4] и вывод в stdout (вы, вероятно, захотите переадресовать для упрощения чтения)
  4. Очистите временные каталоги.

Вероятно, нужно лучше обработать определенные вещи, которые могут пойти не так во время поиска источника, управление потоком, вероятно, немного не работает, и должны быть более элегантные способы проверки версий, но в то же время он отлично работал в моем ограниченном тестировании. Пока, подумайте, что это быстрый хак, который работает, и улучшения наиболее приветствуются.

Редактировать: вместо того, чтобы позволить ему гнить на пастебине, я запустил Launchpad, и я запустил его в репозиторий bzr и / или создаю проект Launchpad, если он полезен для нескольких человек. проект ; вы можете получить последнюю версию сундука с помощью bzr branch lp: whatchanged . Не стесняйтесь сообщать об ошибках , вставлять их, переписывать в Perl и т. Д.

5
ответ дан 7 August 2018 в 22:37

Вот еще одно решение, которое я взломал вместе: whatchanged .

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

  ./ whatchanged python_papyon  

Это то, что он делает:

  1. Проверьте, есть ли кандидат на обновление; exit, если нет
  2. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них
  3. Сравните два с debdiff [ ! d4] и вывод в stdout (вы, вероятно, захотите переадресовать для упрощения чтения)
  4. Очистите временные каталоги.

Вероятно, нужно лучше обработать определенные вещи, которые могут пойти не так во время поиска источника, управление потоком, вероятно, немного не работает, и должны быть более элегантные способы проверки версий, но в то же время он отлично работал в моем ограниченном тестировании. Пока, подумайте, что это быстрый хак, который работает, и улучшения наиболее приветствуются.

Редактировать: вместо того, чтобы позволить ему гнить на пастебине, я запустил Launchpad, и я запустил его в репозиторий bzr и / или создаю проект Launchpad, если он полезен для нескольких человек. проект ; вы можете получить последнюю версию сундука с помощью bzr branch lp: whatchanged . Не стесняйтесь сообщать об ошибках , вставлять их, переписывать в Perl и т. Д.

5
ответ дан 10 August 2018 в 10:44

Вот еще одно решение, которое я взломал вместе: whatchanged .

В качестве единственного аргумента требуется имя интересующего вас двоичного пакета. Чтобы использовать недавний SRU в качестве примера:

  ./ whatchanged python_papyon  

Это то, что он делает:

  1. Проверьте, есть ли кандидат на обновление; exit, если нет
  2. Если кандидат существует, создайте временные каталоги и выберите исходные пакеты как для установленной версии, так и для кандидата в них
  3. Сравните два с debdiff [ ! d4] и вывод в stdout (вы, вероятно, захотите переадресовать для упрощения чтения)
  4. Очистите временные каталоги.

Вероятно, нужно лучше обработать определенные вещи, которые могут пойти не так во время поиска источника, управление потоком, вероятно, немного не работает, и должны быть более элегантные способы проверки версий, но в то же время он отлично работал в моем ограниченном тестировании. Пока, подумайте, что это быстрый хак, который работает, и улучшения наиболее приветствуются.

Редактировать: вместо того, чтобы позволить ему гнить на пастебине, я запустил Launchpad, и я запустил его в репозиторий bzr и / или создаю проект Launchpad, если он полезен для нескольких человек. проект ; вы можете получить последнюю версию сундука с помощью bzr branch lp: whatchanged . Не стесняйтесь сообщать об ошибках , вставлять их, переписывать в Perl и т. Д.

5
ответ дан 13 August 2018 в 17:17
  • 1
    Как мило! Разработка инструментов в качестве ответов;) Как и вы, стиль кодирования, но правильно закодировал его в perl .. – LassePoulsen 25 October 2010 в 01:42
  • 2
    Благодаря; надеюсь, что это полезно. То, как упаковывают и выпускают технические детали, иногда делает открытый код кажущимся непрозрачным, - это то, что было у меня на уме, и я не нашел простых инструментов для преодоления этого, поэтому кто-то, выражающий потребность в том же самом, был хорошей мотивацией, чтобы, наконец, сделайте примитивную. – mgunes 25 October 2010 в 14:22

Afaik - единственный способ сделать это, чтобы получить источник и сделать diff своим. Вы можете получить фактический источник, используемый для компиляции пакетов с помощью apt-get. fx:

apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1
diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/

Это приведет к распечатке всех различий между всеми файлами в стандартном формате патча.

7
ответ дан 26 May 2018 в 00:55
  • 1
    Это очень хорошо. Единственное, что я изменил в этом примере, это использовать «debdiff gwibber_2.30.0.1-0ubuntu1.dsc gwibber_2.30.2-0ubuntu3.dsc», а не raw diff. – RAOF 24 October 2010 в 06:28
  • 2
    Ну, это практически то же самое, но вы можете использовать diff для каждого пакета / tarball. Может быть, кто-то хочет увидеть разницу между svn-trunk и текущим pkg. – LassePoulsen 24 October 2010 в 13:19
  • 3
    Мой второй ответ (whatchanged) по существу автоматизирует это. – mgunes 24 October 2010 в 15:54

Вот один (возможно, не оптимальный) способ UDD:

Pull -updates branch для вашего релиза (предположим, Lucid), что (предположение следует) должно содержать последний SRU:

[ f1]

Получить изменения, внесенные в последнюю редакцию, которые (предположение следует) должны соответствовать последнему SRU:

bzr diff -c`bzr revno`
2
ответ дан 26 May 2018 в 00:55
  • 1
    Хм. Это интересное занятие, хотя оно, вероятно, менее полно, чем исходная лаборатория, в некотором смысле, что имена пакетов могут не совпадать или существовать в дереве исходных текстов bzr. – Gödel 20 October 2010 в 04:56
  • 2
    Пока вы знаете имя исходного пакета, оно будет соответствовать. Вы можете найти, какой исходный пакет двоичный пакет создается с помощью apt-cache show package_name | grep Source:. – mgunes 20 October 2010 в 05:09
  • 3
    @Murat Ну, <package_name>, полученный таким образом, не работает в некоторых пакетах: bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}") = & gt; bzr: ОШИБКА: Недопустимый URL-адрес, передаваемый для транспорта: «bzr + ssh: //bazaar.launchpad.net/+branch/ubuntu/lucid-updates/linux" ;: никаких поддерживаемых схем – Gödel 20 October 2010 в 05:21
  • 4
    Боюсь, это потому, что для ядра нет никаких ветвей Ubuntu. Это может быть конкретное исключение из-за того, что ядро ​​поддерживается в git (kernel.ubuntu.com), но я не уверен в точном объеме ветвей пакета bzr в это время. Вы можете спросить на # ubuntu-devel. – mgunes 20 October 2010 в 05:31
  • 5
    @Mural Я знаю. Вот почему метод менее всеобъемлющий, чем Source Lab. Но опять же, это интересное занятие. – Gödel 20 October 2010 в 05:41

Если вы хотите увидеть различия в файлах в архивах пакетов, извлеките их файлы md5sums, отсортируйте их и откройте их, а затем сможете сузить список фактических файлов, чтобы сравнить их.

0
ответ дан 26 May 2018 в 00:55

Не могут быть «точные» изменения, но apt-listchanges перечисляет записи изменений для изменений, которые были сделаны с установленной версии.

Он работает, добавляя шаг после того, как вы закончите загрузку новые пакеты, но до начала установки, где он показывает вам запись изменений для каждого пакета, который должен быть обновлен. Затем вы можете продолжить или отменить. Вы можете установить его с помощью

sudo apt-get install apt-listchanges

, а затем установить его с помощью

sudo dpkg-reconfigure apt-listchanges
-1
ответ дан 26 May 2018 в 00:55
  • 1
    Опять же, речь идет не о показе изменений ChangeLog. – Gödel 23 October 2010 в 00:07
  • 2
    D'oh, пропустил первую строку, где вы сказали, что «источник отличается». – Ken Simon 23 October 2010 в 00:12

Afaik - единственный способ сделать это, чтобы получить источник и сделать diff своим. Вы можете получить фактический источник, используемый для компиляции пакетов с помощью apt-get. fx:

apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1 diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/

Это приведет к распечатке всех различий между всеми файлами в стандартном формате патча.

7
ответ дан 25 July 2018 в 23:03
  • 1
    Это очень хорошо. Единственное, что я изменил в этом примере, это использовать «debdiff gwibber_2.30.0.1-0ubuntu1.dsc gwibber_2.30.2-0ubuntu3.dsc», а не raw diff. – RAOF 24 October 2010 в 06:28
  • 2
    Ну, это практически то же самое, но вы можете использовать diff для каждого пакета / tarball. Может быть, кто-то хочет увидеть разницу между svn-trunk и текущим pkg. – LassePoulsen 24 October 2010 в 13:19
  • 3
    Мой второй ответ (whatchanged) по существу автоматизирует это. – mgunes 24 October 2010 в 15:54

Вот один (возможно, не оптимальный) способ UDD:

Pull -updates branch для вашего релиза (предположим, Lucid), что (предположение следует) должно содержать последний SRU:

bzr branch lp:ubuntu/lucid-updates/package_name

Получить изменения, внесенные в последнюю редакцию, которые (предположение следует) должны соответствовать последнему SRU:

bzr diff -c`bzr revno`
2
ответ дан 25 July 2018 в 23:03
  • 1
    Хм. Это интересное занятие, хотя оно, вероятно, менее полно, чем исходная лаборатория, в некотором смысле, что имена пакетов могут не совпадать или существовать в дереве исходных текстов bzr. – Gödel 20 October 2010 в 04:56
  • 2
    Пока вы знаете имя исходного пакета, оно будет соответствовать. Вы можете найти, какой исходный пакет двоичный пакет создается с помощью apt-cache show package_name | grep Source:. – mgunes 20 October 2010 в 05:09
  • 3
    @Murat Ну, <package_name>, полученный таким образом, не работает в некоторых пакетах: bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}") = & gt; bzr: ОШИБКА: Недопустимый URL-адрес, передаваемый для транспорта: «bzr + ssh: //bazaar.launchpad.net/+branch/ubuntu/lucid-updates/linux" ;: никаких поддерживаемых схем – Gödel 20 October 2010 в 05:21
  • 4
    Боюсь, это потому, что для ядра нет никаких ветвей Ubuntu. Это может быть конкретное исключение из-за того, что ядро ​​поддерживается в git (kernel.ubuntu.com), но я не уверен в точном объеме ветвей пакета bzr в это время. Вы можете спросить на # ubuntu-devel. – mgunes 20 October 2010 в 05:31
  • 5
    @Mural Я знаю. Вот почему метод менее всеобъемлющий, чем Source Lab. Но опять же, это интересное занятие. – Gödel 20 October 2010 в 05:41

Если вы хотите увидеть различия в файлах в архивах пакетов, извлеките их файлы md5sums, отсортируйте их и откройте их, а затем сможете сузить список фактических файлов, чтобы сравнить их.

0
ответ дан 25 July 2018 в 23:03

Не могут быть «точные» изменения, но apt-listchanges перечисляет записи изменений для изменений, которые были сделаны с установленной версии.

Он работает, добавляя шаг после того, как вы закончите загрузку новые пакеты, но до начала установки, где он показывает вам запись изменений для каждого пакета, который должен быть обновлен. Затем вы можете продолжить или отменить. Вы можете установить его с помощью

sudo apt-get install apt-listchanges

, а затем установить его с помощью

sudo dpkg-reconfigure apt-listchanges
-1
ответ дан 25 July 2018 в 23:03
  • 1
    Опять же, речь идет не о показе изменений ChangeLog. – Gödel 23 October 2010 в 00:07
  • 2
    D'oh, пропустил первую строку, где вы сказали, что «источник отличается». – Ken Simon 23 October 2010 в 00:12

Afaik - единственный способ сделать это, чтобы получить источник и сделать diff своим. Вы можете получить фактический источник, используемый для компиляции пакетов с помощью apt-get. fx:

apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1 diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/

Это приведет к распечатке всех различий между всеми файлами в стандартном формате патча.

7
ответ дан 31 July 2018 в 10:56
  • 1
    Это очень хорошо. Единственное, что я изменил в этом примере, это использовать «debdiff gwibber_2.30.0.1-0ubuntu1.dsc gwibber_2.30.2-0ubuntu3.dsc», а не raw diff. – RAOF 24 October 2010 в 06:28
  • 2
    Ну, это практически то же самое, но вы можете использовать diff для каждого пакета / tarball. Может быть, кто-то хочет увидеть разницу между svn-trunk и текущим pkg. – LassePoulsen 24 October 2010 в 13:19
  • 3
    Мой второй ответ (whatchanged) по существу автоматизирует это. – mgunes 24 October 2010 в 15:54

Вот один (возможно, не оптимальный) способ UDD:

Pull -updates branch для вашего релиза (предположим, Lucid), что (предположение следует) должно содержать последний SRU:

bzr branch lp:ubuntu/lucid-updates/package_name

Получить изменения, внесенные в последнюю редакцию, которые (предположение следует) должны соответствовать последнему SRU:

bzr diff -c`bzr revno`
2
ответ дан 31 July 2018 в 10:56
  • 1
    Хм. Это интересное занятие, хотя оно, вероятно, менее полно, чем исходная лаборатория, в некотором смысле, что имена пакетов могут не совпадать или существовать в дереве исходных текстов bzr. – Gödel 20 October 2010 в 04:56
  • 2
    Пока вы знаете имя исходного пакета, оно будет соответствовать. Вы можете найти, какой исходный пакет двоичный пакет создается с помощью apt-cache show package_name | grep Source:. – mgunes 20 October 2010 в 05:09
  • 3
    @Murat Ну, <package_name>, полученный таким образом, не работает в некоторых пакетах: bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}") = & gt; bzr: ОШИБКА: Недопустимый URL-адрес, передаваемый для транспорта: «bzr + ssh: //bazaar.launchpad.net/+branch/ubuntu/lucid-updates/linux" ;: никаких поддерживаемых схем – Gödel 20 October 2010 в 05:21
  • 4
    Боюсь, это потому, что для ядра нет никаких ветвей Ubuntu. Это может быть конкретное исключение из-за того, что ядро ​​поддерживается в git (kernel.ubuntu.com), но я не уверен в точном объеме ветвей пакета bzr в это время. Вы можете спросить на # ubuntu-devel. – mgunes 20 October 2010 в 05:31
  • 5
    @Mural Я знаю. Вот почему метод менее всеобъемлющий, чем Source Lab. Но опять же, это интересное занятие. – Gödel 20 October 2010 в 05:41

Если вы хотите увидеть различия в файлах в архивах пакетов, извлеките их файлы md5sums, отсортируйте их и откройте их, а затем сможете сузить список фактических файлов, чтобы сравнить их.

0
ответ дан 31 July 2018 в 10:56

Не могут быть «точные» изменения, но apt-listchanges перечисляет записи изменений для изменений, которые были сделаны с установленной версии.

Он работает, добавляя шаг после того, как вы закончите загрузку новые пакеты, но до начала установки, где он показывает вам запись изменений для каждого пакета, который должен быть обновлен. Затем вы можете продолжить или отменить. Вы можете установить его с помощью

sudo apt-get install apt-listchanges

, а затем установить его с помощью

sudo dpkg-reconfigure apt-listchanges
-1
ответ дан 31 July 2018 в 10:56
  • 1
    Опять же, речь идет не о показе изменений ChangeLog. – Gödel 23 October 2010 в 00:07
  • 2
    D'oh, пропустил первую строку, где вы сказали, что «источник отличается». – Ken Simon 23 October 2010 в 00:12

Afaik - единственный способ сделать это, чтобы получить источник и сделать diff своим. Вы можете получить фактический источник, используемый для компиляции пакетов с помощью apt-get. fx:

apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1 diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/

Это приведет к распечатке всех различий между всеми файлами в стандартном формате патча.

7
ответ дан 31 July 2018 в 11:55
  • 1
    Это очень хорошо. Единственное, что я изменил в этом примере, это использовать «debdiff gwibber_2.30.0.1-0ubuntu1.dsc gwibber_2.30.2-0ubuntu3.dsc», а не raw diff. – RAOF 24 October 2010 в 06:28
  • 2
    Ну, это практически то же самое, но вы можете использовать diff для каждого пакета / tarball. Может быть, кто-то хочет увидеть разницу между svn-trunk и текущим pkg. – LassePoulsen 24 October 2010 в 13:19
  • 3
    Мой второй ответ (whatchanged) по существу автоматизирует это. – mgunes 24 October 2010 в 15:54

Вот один (возможно, не оптимальный) способ UDD:

Pull -updates branch для вашего релиза (предположим, Lucid), что (предположение следует) должно содержать последний SRU:

bzr branch lp:ubuntu/lucid-updates/package_name

Получить изменения, внесенные в последнюю редакцию, которые (предположение следует) должны соответствовать последнему SRU:

bzr diff -c`bzr revno`
2
ответ дан 31 July 2018 в 11:55
  • 1
    Хм. Это интересное занятие, хотя оно, вероятно, менее полно, чем исходная лаборатория, в некотором смысле, что имена пакетов могут не совпадать или существовать в дереве исходных текстов bzr. – Gödel 20 October 2010 в 04:56
  • 2
    Пока вы знаете имя исходного пакета, оно будет соответствовать. Вы можете найти, какой исходный пакет двоичный пакет создается с помощью apt-cache show package_name | grep Source:. – mgunes 20 October 2010 в 05:09
  • 3
    @Murat Ну, <package_name>, полученный таким образом, не работает в некоторых пакетах: bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}") = & gt; bzr: ОШИБКА: Недопустимый URL-адрес, передаваемый для транспорта: «bzr + ssh: //bazaar.launchpad.net/+branch/ubuntu/lucid-updates/linux" ;: никаких поддерживаемых схем – Gödel 20 October 2010 в 05:21
  • 4
    Боюсь, это потому, что для ядра нет никаких ветвей Ubuntu. Это может быть конкретное исключение из-за того, что ядро ​​поддерживается в git (kernel.ubuntu.com), но я не уверен в точном объеме ветвей пакета bzr в это время. Вы можете спросить на # ubuntu-devel. – mgunes 20 October 2010 в 05:31
  • 5
    @Mural Я знаю. Вот почему метод менее всеобъемлющий, чем Source Lab. Но опять же, это интересное занятие. – Gödel 20 October 2010 в 05:41

Если вы хотите увидеть различия в файлах в архивах пакетов, извлеките их файлы md5sums, отсортируйте их и откройте их, а затем сможете сузить список фактических файлов, чтобы сравнить их.

0
ответ дан 31 July 2018 в 11:55

Не могут быть «точные» изменения, но apt-listchanges перечисляет записи изменений для изменений, которые были сделаны с установленной версии.

Он работает, добавляя шаг после того, как вы закончите загрузку новые пакеты, но до начала установки, где он показывает вам запись изменений для каждого пакета, который должен быть обновлен. Затем вы можете продолжить или отменить. Вы можете установить его с помощью

sudo apt-get install apt-listchanges

, а затем установить его с помощью

sudo dpkg-reconfigure apt-listchanges
-1
ответ дан 31 July 2018 в 11:55
  • 1
    Опять же, речь идет не о показе изменений ChangeLog. – Gödel 23 October 2010 в 00:07
  • 2
    D'oh, пропустил первую строку, где вы сказали, что «источник отличается». – Ken Simon 23 October 2010 в 00:12

Не могут быть «точные» изменения, но apt-listchanges перечисляет записи изменений для изменений, которые были сделаны с установленной версии.

Он работает, добавляя шаг после того, как вы закончите загрузку новых пакетов, но до начала установки, где он показывает вам запись изменений для каждого пакета, который должен быть обновлен. Затем вы можете продолжить или отменить. Вы можете установить его с помощью

  sudo apt-get install apt-listchanges  

, а затем установить его с помощью

  sudo  dpkg-reconfigure apt-listchanges  
-1
ответ дан 2 August 2018 в 04:24

Если вы хотите увидеть различия в файлах в архивах пакетов, извлеките их файлы md5sums, отсортируйте их и откройте их, а затем сможете сузить список фактических файлов, чтобы сравнить их.

0
ответ дан 2 August 2018 в 04:24

Afaik единственный способ сделать это - получить источник и сделать diff своим. Вы можете получить фактический источник, используемый для компиляции пакетов с помощью apt-get. fx:

  apt-get source gwibber = 2.30.2-0ubuntu3 gwibber = 2.30.0.1-0ubuntu1 diff -rupN gwibber-2.30.0.1 / gwibber-2.30.2 /  [  ! d3] 

Это выведет все различия между всеми файлами в стандартном формате патча.

7
ответ дан 2 August 2018 в 04:24

Вот один (возможно, не оптимальный) способ UDD :

Pull-updates ветвь для вашей версии (предполагая Lucid), что (предположение следует) должно содержать последние SRU:

  bzr branch lp: ubuntu / lucid-updates / имя_пакета  

Получить изменения, внесенные в последнюю редакцию, которые (предположение следует) должны соответствовать к последнему SRU:

  bzr diff -c`bzr revno`  
2
ответ дан 2 August 2018 в 04:24

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

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