Как заставить "dnf" использовать пакеты из репозитория "copr"

2643
David Tonhofer

На Fedora 24:

Я хочу заменить компилятор (пакет ghc) Haskell более поздней версией (в частности, 7.10.3) из репозитория «copr».

Итак, я включаю репозиторий:

dnf copr enable petersen/ghc-7.10.3 

Теперь я могу проверить пакеты, доступные в репозитории copr, используя

dnf --disablerepo="*" --enablerepo="petersen-ghc-7.10.3" list available 

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

Например, один из пакетов ghc.x86_64.

Как я могу сказать, dnfчтобы получить пакет из репозитория copr вместо стандартного репозитория fedora?

0
Обратите внимание, что я, возможно, еще не в курсе всех концепций, которые поставляются с `dnf`. Arrrr .... David Tonhofer 7 лет назад 0

1 ответ на вопрос

1
Jakuje

Точно так же, как вы перечисляете пакеты:

dnf --disablerepo="*" --enablerepo="petersen-ghc-7.10.3" install ghc 

Или, если у вас установлена ​​более старая версия, используйте upgradeвместо install. Если новее, то downgrade. Это все волшебство.

Если я это сделаю, `dnf` скажет мне, что у меня уже есть много конфликтующих пакетов (" Пропуск пакетов с конфликтами "... в основном все они). Действительно, я установил пакет «haskell-platform», который поставляется с Fedora ранее. По-видимому, `dnf` не считает загрузку содержимого из другого хранилища бесконфликтным обновлением. Теперь я не могу «выбросить» `haskell-platform`, это не« групповой пакет », но, тем не менее, он просто ведет себя как маркерный пакет, который извлекает зависимые пакеты, но сам ничего не устанавливает. `rpm --erase` на нем не стирает зависимое дерево ... требуется ручная работа !. David Tonhofer 7 лет назад 0
Не уверен, означает ли это, что вы уже решили свои проблемы или нет. Но не зная, как выглядят конфликты, я думаю, что нет никакой возможности, какую дополнительную информацию я могу предоставить Jakuje 7 лет назад 0
На самом деле ручная работа не требуется. Просто если кто знает как. 1) Рекурсивно удалить все пакеты, извлеченные для пакета fedora `haskell-platform`, используя` dnf` (вместо `rpm`, который не предоставляет эту опцию):" `dnf erase haskell-platform`" 2) Повторно добавьте pcks, которые могут пригодиться позже: «dnf install ncurses-c ++ - libs freeglut-devel`» и т. д. 3) Просто запустите «dnf install ghc`». `dnf` извлечет последнюю версию` ghc` из репозитория `petersen-ghc-7.10.3` (ранее включена) и извлечет любые зависимости из репозитория fedora (так как эта опция включена), в моем случае` ncurses-devel` и т.д. 4) Выиграй! David Tonhofer 7 лет назад 0
Принятие ответа, хотя факт более сложный. Спасибо Jakuje. David Tonhofer 7 лет назад 0