Я хочу установить пакет, который отсутствует в jessie from wheezy. Это как бэкпорт наоборот. Мне нужен gcc-4.7, но jessie предоставляет только gcc-4.9. Unstable предоставляет gcc-4.7 только для архитектуры arm. Я планирую добавить репозиторий wheezy в свои ресурсы и установить его с помощью команды
apt install gcc-4.7 / wheezy
Это относительно безопасно? Рискую ли я при этом вызвать проблемы с зависимостью?
Скорее всего не будет работать безупречно. Обычно пути и двоичные файлы из старых версий конфликтуют с новыми. Иногда кто-то делает резервную копию, и когда они это делают, обычно это связано с изменением путей, чтобы все работало в нестандартных каталогах. Это заставляет пакет работать, но никакой другой пакет не обнаружит их зависимости.
Одна вещь, которую вы, возможно, захотите попробовать, - это запустить затронутый исполняемый файл в контейнере докера. Вы можете создать контейнер предыдущей версии Debian, установить там минимальное программное обеспечение, необходимое для запуска исполняемого файла, а затем создать образ контейнера. Все зависимости будут внутри контейнера, и вы можете просто запустить его с помощью docker run
. Это может сэкономить время для некоторого программного обеспечения командной строки, даже для серверного программного обеспечения, но может быть беспорядком, если затронутый исполняемый файл нуждается в Xserver или административных привилегиях.
Вы можете попробовать перекомпилировать пакет deb с исходным кодом, который вы получили от wheezy, на своем экземпляре jessie. Обратите внимание, что я предполагаю, что gcc-4.7
можно скомпилировать без ошибок с помощью gcc-4.9
, что не является верной ставкой.
Однако общая процедура должна быть такой:
/etc/apt/sources.list
, например deb http://ftp.us.debian.org/debian/ wheezy main contrib
/etc/apt/sources.list
, например deb-src http://ftp.us.debian.org/debian/ wheezy main contrib
apt-get update
gcc-4.7
: apt-get source gcc-4.7
gcc-4.7
build-dependencies, запустив apt-get build-dep gcc-4.7
(на самом деле это может быть довольно сложно, потому что может возникнуть ряд конфликтов с текущими установленными пакетами, и вам нужно разобраться с ними вручную) apt-get
gcc-4.7
исходный код на шаге 4, например cd gcc-4.7
или как там он называется dpkg-buildpackage -us -uc
Я написал эту процедуру по памяти, поэтому, пожалуйста, отнеситесь к ней с недоверием и настройте команды там, где это необходимо. В частности, я не уверен, что параметры dpkg-buildpackage
-us
и -uc
существуют в jessie, если они просто не используют их.