Иногда pkg при установке/обновлении тянет столько зависимостей или начинает чудить с удалением нужных пакетов. Тогда будем применять следующий приём: скачивать (или собирать на основе порта) нужный пакет, помещать его в наш репозиторий, отключать удалённый, ставить пакет.
Создаём папку для нашего репозитория:
# mkdir /usr/myrepo
Если есть скомпилленый пакет в портах, то собираем его в пакет:
# cd /usr/ports/graphics/imlib2
# make package
Или просто скачиваем:
# pkg fetch -o /usr/myrepo/ imlib2
Инициируем репозиторий:
# cp /usr/ports/packages/All/imlib2_1.4.6,2.txz /usr/myrepo/
# pkg repo /usr/myrepo
Создаём конфиг
# mkdir -p /usr/local/etc/pkg/repos
# cat << EOF >> /usr/local/etc/pkg/repos/myrepo.conf
myrepo: {
url: "file:///usr/myrepo",
mirror_type: "none",
signature_type: "none",
enabled: yes
}
EOF
# pkg repo /usr/myrepo/
Теперь временно перемещаем другие конфиги репозиториев из /usr/local/etc/pkg/repos/ в /usr/myrepo/ и выполняем:
# pkg update
После этого можно ставить пакет:
# pkg install imlib2
В конце не забудьте вернуть обратно конфиги репозиториев, которые вы перемещали. Для установки нескольких пакетов, просто положите их туда и выполните pkg update.