Установить пакет из старого стабильного (wheezy) в стабильный (jessie)

Я хочу установить пакет, который отсутствует в jessie from wheezy. Это как бэкпорт наоборот. Мне нужен gcc-4.7, но jessie предоставляет только gcc-4.9. Unstable предоставляет gcc-4.7 только для архитектуры arm. Я планирую добавить репозиторий wheezy в свои ресурсы и установить его с помощью команды

apt install gcc-4.7 / wheezy

Это относительно безопасно? Рискую ли я при этом вызвать проблемы с зависимостью?

5
задан 16 February 2016 в 10:58
2 ответа

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

Одна вещь, которую вы, возможно, захотите попробовать, - это запустить затронутый исполняемый файл в контейнере докера. Вы можете создать контейнер предыдущей версии Debian, установить там минимальное программное обеспечение, необходимое для запуска исполняемого файла, а затем создать образ контейнера. Все зависимости будут внутри контейнера, и вы можете просто запустить его с помощью docker run . Это может сэкономить время для некоторого программного обеспечения командной строки, даже для серверного программного обеспечения, но может быть беспорядком, если затронутый исполняемый файл нуждается в Xserver или административных привилегиях.

0
ответ дан 3 December 2019 в 02:09

Вы можете попробовать перекомпилировать пакет deb с исходным кодом, который вы получили от wheezy, на своем экземпляре jessie. Обратите внимание, что я предполагаю, что gcc-4.7 можно скомпилировать без ошибок с помощью gcc-4.9 , что не является верной ставкой.

Однако общая процедура должна быть такой:

  1. Добавьте двоичные файлы wheezy в качестве источника в свой файл /etc/apt/sources.list , например deb http://ftp.us.debian.org/debian/ wheezy main contrib
  2. Добавьте источники wheezy в качестве источника в ваш файл /etc/apt/sources.list , например deb-src http://ftp.us.debian.org/debian/ wheezy main contrib
  3. запустить apt-get update
  4. загрузить исходный пакет gcc-4.7 : apt-get source gcc-4.7
  5. install gcc-4.7 build-dependencies, запустив apt-get build-dep gcc-4.7 (на самом деле это может быть довольно сложно, потому что может возникнуть ряд конфликтов с текущими установленными пакетами, и вам нужно разобраться с ними вручную)
  6. войдите в каталог, в который загружен apt-get gcc-4.7 исходный код на шаге 4, например cd gcc-4.7 или как там он называется
  7. build gcc-4.7: dpkg-buildpackage -us -uc
  8. при условии, что сборка выполняется без ошибок, установите сгенерированные пакеты, которые вы найдете в родительском каталоге

Я написал эту процедуру по памяти, поэтому, пожалуйста, отнеситесь к ней с недоверием и настройте команды там, где это необходимо. В частности, я не уверен, что параметры dpkg-buildpackage -us и -uc существуют в jessie, если они просто не используют их.

0
ответ дан 3 December 2019 в 02:09

Теги

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