Ansible apt build-dep: нет соответствия пакетов

Я устанавливаю unrar-nonfree на Raspbian на основе Как установить unrar-nonfree? (raspberrypi.stackexchange.com), но с использованием Ansible. Я успешно добавил репозиторий apt, используя ansibles: apt_repository, который обновляет кеш (по умолчанию) при изменении. Сразу же после того, как я пытаюсь запустить:

sudo apt-get build-dep unrar-nonfree

Но с эквивалентом ansible:

- apt:
    pkg: unrar-nonfree
    state: build-dep

За исключением того, что это не работает с: fatal: [192.168.2.3]: FAILED! => {"changed": false, "failed": true, "msg": "No package matching 'unrar-nonfree' is available"}

Расширенные журналы (-vvv) для сбоя:

TASK [unrar-nonfree : apt] *****************************************************
task path: /Users/leonelgalan/Work/ansible-pi/roles/unrar-nonfree/tasks/main.yml:12
<192.168.2.2> ESTABLISH SSH CONNECTION FOR USER: leonelgalan
<192.168.2.2> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=leonelgalan -o ConnectTimeout=10 -o ControlPath=/Users/leonelgalan/.ansible/cp/ansible-ssh-%h-%p-%r -tt 192.168.2.2 '/bin/sh -c '"'"'( umask 22 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1462315830.89-175365841755446 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1462315830.89-175365841755446 `" )'"'"''
<192.168.2.2> PUT /var/folders/q8/mdl09l9d6m38tkk9rjtgq_9r0000gn/T/tmpwEEqbI TO /home/leonelgalan/.ansible/tmp/ansible-tmp-1462315830.89-175365841755446/apt
<192.168.2.2> SSH: EXEC sftp -b - -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=leonelgalan -o ConnectTimeout=10 -o ControlPath=/Users/leonelgalan/.ansible/cp/ansible-ssh-%h-%p-%r '[192.168.2.2]'
<192.168.2.2> ESTABLISH SSH CONNECTION FOR USER: leonelgalan
<192.168.2.2> SSH: EXEC ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=leonelgalan -o ConnectTimeout=10 -o ControlPath=/Users/leonelgalan/.ansible/cp/ansible-ssh-%h-%p-%r -tt 192.168.2.2 '/bin/sh -c '"'"'sudo -H -S -n -u root /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-uctakuwrjhufxakpatxinjmeibajdcbz; /bin/sh -c '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /home/leonelgalan/.ansible/tmp/ansible-tmp-1462315830.89-175365841755446/apt; rm -rf "/home/leonelgalan/.ansible/tmp/ansible-tmp-1462315830.89-175365841755446/" > /dev/null 2>&1'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"''"'"''
fatal: [192.168.2.2]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_args": {"cache_valid_time": null, "deb": null, "default_release": null, "dpkg_options": "force-confdef,force-confold", "force": false, "install_recommends": null, "package": ["unrar-nonfree"], "pkg": "unrar-nonfree", "purge": false, "state": "build-dep", "update_cache": true, "upgrade": null}, "module_name": "apt"}, "msg": "No package matching 'unrar-nonfree' is available"}

Поиск проблемы

Ansible: ansible 2.0.1.0 ОС: Raspbian Jessie, март 2016 г.

  1. Я перезапускал скрипт несколько раз, он каждый раз терпит неудачу на одном и том же месте.
  2. Я добавил дополнительные -apt: update_cache=yes между двумя задачами.
  3. Я успешно запустил sudo apt-get build-dep unrar-nonfree на той же машине. Ansible по-прежнему терпит неудачу:

Журналы № 3:

$ sudo apt-get build-dep unrar-nonfree
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  debhelper gettext intltool-debian libunistring0 po-debconf
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,482 kB of archives.
After this operation, 8,594 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libunistring0 armhf 0.9.3-5.2 [253 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main gettext armhf 0.19.3-2 [1,167 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main intltool-debian all 0.35.0+20060710.1 [29.8 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main po-debconf all 1.0.16+nmu3 [220 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main debhelper all 9.20150101 [813 kB]
Fetched 2,482 kB in 26s (93.3 kB/s)
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend requires a screen at least 13 lines tall and 31 columns wide.)
debconf: falling back to frontend: Readline
Selecting previously unselected package libunistring0:armhf.
(Reading database ... 125630 files and directories currently installed.)
Preparing to unpack .../libunistring0_0.9.3-5.2_armhf.deb ...
Unpacking libunistring0:armhf (0.9.3-5.2) ...
Selecting previously unselected package gettext.
Preparing to unpack .../gettext_0.19.3-2_armhf.deb ...
Unpacking gettext (0.19.3-2) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../intltool-debian_0.35.0+20060710.1_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.1) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../po-debconf_1.0.16+nmu3_all.deb ...
Unpacking po-debconf (1.0.16+nmu3) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../debhelper_9.20150101_all.deb ...
Unpacking debhelper (9.20150101) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for install-info (5.2.0.dfsg.1-6) ...
Setting up libunistring0:armhf (0.9.3-5.2) ...
Setting up gettext (0.19.3-2) ...
Setting up intltool-debian (0.35.0+20060710.1) ...
Setting up po-debconf (1.0.16+nmu3) ...
Setting up debhelper (9.20150101) ...
Processing triggers for libc-bin (2.19-18+deb8u4) ...

person Leonel Galán    schedule 26.04.2016    source источник
comment
У вас все еще есть эта проблема?   -  person Kevin C    schedule 08.02.2021


Ответы (1)


Попробуй это:

- apt_repository: repo='deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi' state=present
- apt: update_cache=yes
- apt:
    name: unrar-nonfree
    state: build-dep
- shell: mkdir -p /tmp/unrar && cd /tmp/unrar && rm -f /tmp/unrar/* && sudo apt-get source -b unrar-nonfree -y && sudo  dpkg -i unrar*.deb && rm -rf /tmp/unrar/
person Valeriy Solovyov    schedule 28.04.2016
comment
Спасибо за помощь, но это третий шаг, тот, который терпит неудачу. Это тот, что в исходном вопросе. Не получается с "No package matching 'unrar-nonfree' is available" - person Leonel Galán; 29.04.2016
comment
Пакет существует archive.raspbian.org/raspbian/pool /non-free/u/unrar-nonfree, но в файле репо я не могу его найти: archive.raspbian.org/raspbian/dists/wheezy/non-free/ - person Valeriy Solovyov; 30.04.2016
comment
Вы можете использовать archive.raspbian.org/raspbian/pool/main/u/unrar-free/ - person Valeriy Solovyov; 30.04.2016
comment
Но запуск той же команды без поддержки работает. См. мой третий шаг по устранению неполадок. В основном я ищу, почему это не работает на ansible, вместо того, чтобы получить unrar-non-free con my Pi, я уже сделал это. - person Leonel Galán; 01.05.2016
comment
Как видите, github.com/ ansible/ansible-modules-core/blob/release1.8.0/ модуль использует файл apt-get. Попробуйте Ansible-playbook -vvv, чтобы увидеть cmd - person Valeriy Solovyov; 01.05.2016
comment
Также вы должны проверить, было ли добавлено репо - person Valeriy Solovyov; 01.05.2016
comment
Вы имеете в виду в cat /etc/apt/sources.list? Да, в этом файле есть deb-src archive.raspbian.org/raspbian jessie main contrib non-free rpi после запуска этой первой задачи Ansible_. Как я упоминал ранее, я нахожусь в том, что он работает, если я запускаю его вручную, но не работает, когда я запускаю его в Ansible (другими словами, установлены предварительные условия). Я сообщу о результатах -vvv, как только мой RPI будет рядом со мной. - person Leonel Galán; 03.05.2016
comment
Я связал вывод -vvv: gist.github.com/leonelgalan/f14fb8f83368ffd764697643e3d23ac7, но я нигде не вижу команды. Похоже, они абстрагированы в файле python, который позже был удален. - person Leonel Galán; 04.05.2016
comment
Это как ошибка. Вы использовали Ansible из репозитория дистрибутива или установили его с помощью pip? Я столкнулся с проблемами, когда использовал его из репозитория дистрибутива. Может попробовать обновить Ansible? И открыть баг в их репозитории на github. - person Valeriy Solovyov; 04.05.2016