Различия в разных версиях одного и того же пакета 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 ответов

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

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

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

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

  sudo apt-get install apt-listchanges  

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

  sudo  dpkg-reconfigure apt-listchanges  
-1
ответ дан 4 August 2018 в 20:56

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

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

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

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

  bzr diff -c`bzr revno`  
2
ответ дан 4 August 2018 в 20:56

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
ответ дан 4 August 2018 в 20:56

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

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

  sudo apt-get install apt-listchanges  

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

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

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

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

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

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

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

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

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

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
ответ дан 6 August 2018 в 04:28

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

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

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

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

  sudo apt-get install apt-listchanges  

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

  sudo  dpkg-reconfigure apt-listchanges  
-1
ответ дан 7 August 2018 в 22:37

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
ответ дан 7 August 2018 в 22:37

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

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

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

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

  bzr diff -c`bzr revno`  
2
ответ дан 7 August 2018 в 22:37

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

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

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

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

  sudo apt-get install apt-listchanges  

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

  sudo  dpkg-reconfigure apt-listchanges  
-1
ответ дан 10 August 2018 в 10:44

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
ответ дан 10 August 2018 в 10:44

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

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

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

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

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

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

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

  sudo apt-get install apt-listchanges  

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

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

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

0
ответ дан 13 August 2018 в 17:17

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

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

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

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

  bzr diff -c`bzr revno`  
2
ответ дан 13 August 2018 в 17:17
  • 1
    Хм. Это интересное занятие, хотя оно, вероятно, менее полно, чем исходная лаборатория, в некотором смысле, что имена пакетов могут не совпадать или существовать в дереве исходных текстов bzr. – Gödel 20 October 2010 в 04:56
  • 2
    Пока вы знаете имя исходного пакета, оно будет соответствовать. Вы можете найти, какой исходный пакет создается двоичным пакетом, с помощью apt-cache show package_name | grep Источник: . – mgunes 20 October 2010 в 05:09
  • 3
    @Murat Ну, & lt; имя_пакета & gt; , поэтому полученный результат не работает в некоторых пакетах: bzr branch lp: ubuntu / lucid-updates / $ (apt-cache show linux-libc-dev | grep -m 1 Источник: | awk & quot; {print \ $ 2} & quot;) = & 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

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
ответ дан 13 August 2018 в 17:17
  • 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

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

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