Я хочу установить пакет, которого нет в jessie from wheezy. Это как бэкпорт наоборот. Мне нужен gcc-4.7, но jessie предоставляет только gcc-4.9. Unstable предоставляет gcc-4.7 только для архитектуры arm. Я планирую добавить репозиторий wheezy в свои ресурсы и установить его командой
apt install gcc-4.7/wheezy
Это относительно безопасно? Могу ли я при этом рисковать проблемами зависимости?
Вы можете попробовать перекомпилировать исходный пакет 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, если они просто не использовали их.
Скорее всего, он не будет работать безупречно. Обычно пути и двоичные файлы из старых версий конфликтуют с новыми. Иногда кто-то делает резервную копию, и когда это происходит, обычно требуется изменить пути, чтобы все работало в нестандартных каталогах. Это заставляет пакет работать, но никакой другой пакет не найдет своих зависимостей.
Одна вещь, которую вы, возможно, захотите попробовать, - это запустить исполняемый файл в контейнере докера. Вы можете создать контейнер предыдущей версии Debian, установить там минимальное программное обеспечение, необходимое для запуска исполняемого файла, а затем создать образ контейнера. Все зависимости будут внутри контейнера, и вы можете просто запустить его с помощью docker run <image> <command>
. Это может сэкономить время для некоторого программного обеспечения командной строки, даже для серверного программного обеспечения, но может быть беспорядком, если затронутый исполняемый файл нуждается в Xserver или административных привилегиях.