Как установить пакет из AUR, для которого в дальнейшем нужны зависимые пакеты AUR
Так. Я использую ArchLinux с оконным менеджером i3 (короче говоря, нет подходящей среды рабочего стола). Я новичок в Arch Linux
Я пытаюсь установить этот пакет под названием "Затвор", который поможет мне сделать снимок экрана.
Теперь я попытался установить "затвор"
sudo pacman -S shutter
К сожалению, шторка недоступна в репозитории pacman (или как там она называется, извините), я знал, что она недоступна, но я просто хотел попробовать и пошел дальше и попробовал.
Причина, по которой я знал, что она недоступна, была в том, что она была указана в AUR. Теперь пакеты в AUR - это те, которых нет в основном хранилище. Хорошо. Я скачал пакет из его мерзавца и попытался "сделать" его.
git clone aur.blah.blah.shutter.git
cd shutter
makepkg -s
Теперь это ошибка, с которой я столкнулся.
[pc@PC shutter]$ makepkg -s
==> Making package: shutter 0.93.1-11 (Thu May 18 19:05:21 UTC 2017)
==> Checking runtime dependencies...
==> Installing missing dependencies...
[sudo] password for pc:
error: target not found: gnome-perl
error: target not found: perl-gnome2-wnck
error: target not found: perl-gtk2-imageview
error: target not found: perl-gtk2-unique
warning: skipping target: perl-xml-simple
==> ERROR: 'pacman' failed to install missing dependencies.
Теперь я внимательно посмотрел этот список и понял, что эти пакеты зависимостей, например, gnome-perl и другие, сами по себе недоступны в основном репозитории pacman, но присутствуют в AUR. Поэтому имеет смысл, почему Пакман не может найти цель.
Чтобы проверить я пытался:
[pc@PC shutter]$ sudo pacman -S gnome-perl
error: target not found: gnome-perl
Так что да, этот "gnome-perl" и другие зависимости тоже являются частью AUR, и, следовательно, когда "makepkg" говорит pacman установить его, pacman simple терпит неудачу.
Итак, как мне установить такие пакеты из AUR, которые так сильно зависят от других пакетов AUR?
Заранее спасибо. Если мои концепции неверны. Пожалуйста, руководство. Еще раз спасибо.
PS: я сделал sudo pacman -Сю, но не удача, ведь эти пакеты не являются частью основного репо и находятся в AUR, поэтому обновление pacman mirrorlist и системного обновления не должно это исправлять.
4 ответа
Вы можете указать Cower рекурсивно загружать зависимости AUR пакета AUR, указав параметр загрузки -d
в два раза так -dd
, -d -d
или же --download --download
От man cower
:
OPERATIONS
-d, --download
Download target. Pass this option twice to fetch uninstalled dependencies (done recursively).
Было бы намного понятнее, если AUR
был вставлен: передайте эту опцию дважды, чтобы получить неустановленные зависимости AUR (выполняется рекурсивно). Но, честно говоря, Кауэр имеет дело только с AUR.;)
(Зависимости главного архива репо (не AUR) уже позаботились о makepkg
команда конечно.)
При установке, вероятно, лучше загрузить все пакеты AUR в одну выделенную папку и оставить их там. Cower отслеживает, куда были загружены и установлены пакеты. (Все мои пакеты AUR загружаются в /home/myUsername/AUR-packages
потому что я единственный пользователь.) Хотя все зависит от вашей ситуации.
Сначала вы должны бежать makepkg -sic
(или любые другие параметры) в папке каждой зависимости AUR. Затем в папке основного пакета AUR.
Обновление:
Чтобы легко проверить наличие обновлений для установленных пакетов AUR:
cower -u
затем объединить
-u
с-dd
чтобы также проверить и рекурсивно загрузить все зависимости AUR:cower -udd
(или сделайте это прямо сейчас)тогда сначала
cd
в папку каждой зависимости AUR и запуститьmakepkg -sic
(или любые другие опции, которые вы обычно используете)затем перейдите в папку каждого верхнего / основного пакета AUR (независимо от того, который вы фактически установили и хотите использовать) и запустите
makepkg -sic
(или любые другие опции, которые вы обычно используете).
Не забывайте, что есть и опция многословия -v
который также позволит вам увидеть все другие пакеты, которые были проверены на наличие обновлений. Не только с обновлениями.
Чем больше пакетов AUR вы установили, тем больше вы поймете, что для этого требуется автоматизация одним или несколькими сценариями.
Если вам это полезно, это простая функция bash, которая пытается загрузить и установить список пакетов. Конечно, это не делает разрешение зависимостей, поэтому вам нужно установить зависимости перед пакетами, которые зависят от них.
aur_manual_install() {
[[ ! -d aur_packages ]] && mkdir aur_packages
pushd aur_packages
for PKG in "$@" ; do
curl -o ${PKG}.tar.gz https://aur.archlinux.org/cgit/aur.git/snapshot/${PKG}.tar.gz
tar zxvf ${PKG}.tar.gz
rm ${PKG}.tar.gz
pushd ${PKG}
makepkg -csi --noconfirm
popd
done
popd
#rm -rf aur_packages # Uncomment if you want to clean up after install
}
Пример использования (аргументы - это список пакетов, которые нужно установить по порядку):
aur_manual_install cower-git pacaur
Может быть, вы хотите добавить set -e
остановить в случае ошибки и т. д.
Правка 1: исходный код, который я разместил, имел некоторые проблемы, потому что он был извлечен из более крупного скрипта.
Изменить 2: я добился определенного прогресса, пытаясь установить этот пакет:
aur_manual_install \
gnome-perl gnome-vfs gnome-vfs-nosmb gnome-vfs-perl gnomecanvas-perl libbonobo libbonoboui libgnome libgnome-data libgnomeui orbit2 perl-gnome2-wnck perl-gtk2-imageview perl-gtk2-unique shutter
(Есть, вероятно, другие пакеты, которые уже были установлены).
Редактировать 3: мне пришлось установить gnome-vfs-nosmb вручную, потому что он конфликтовал с gnome-vfs.
Редактировать 4: наконец-то! заполнив все оставшиеся пакеты, я получил его на работу. Но, вероятно, было бы неплохо попросить разработчика обновить GTK3 или аналогичный; Ой, видимо проект был последний раз обновлен в 2014 году...
Вы можете использовать Yaourt .
Вы можете установить его, добавив репозиторий в ваш pacman.conf
sudo nano /etc/pacman.conf
Добавьте это в раздел "Хранилища":
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
Обновите базу данных pacman и установите yaourt
sudo pacman -Sy yaourt
Теперь вы можете установить свой пакет с: yaourt shutter
Возможно, вам пригодится менеджер пакетов AUR.
Я лично использую yaourt, это очень просто и автоматически разрешает зависимости.
Это очень легко установить, просто следуйте инструкциям:
Чтобы установить пакет (и все его зависимости), выполните:
yaourt -S shutter