Ansible apt build-dep:“没有匹配的软件包...”

9

我正在根据如何在Raspbian上安装unrar-nonfree?(raspberrypi.stackexchange.com)的说明使用Ansible来安装unrar-nonfree。我已经成功地使用ansible中的apt_repository添加了apt仓库,并且当有变化时更新了缓存(默认值)。之后,我立即尝试运行以下命令:

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": "没有匹配'unrar-nonfree'的软件包可用"}

以下是该失败的详细日志 (-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 March 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) ...

你还有这个问题吗? - Kevin C
1个回答

1

Try this one:

- 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/

谢谢您的帮助,但是它是第三步,也就是原问题中失败的那一步。它会提示“没有可用的'unrar-nonfree'软件包”。 - Leonel Galán
你可以使用 https://archive.raspbian.org/raspbian/pool/main/u/unrar-free/unrar-free_0.0.1%2bcvs20140707-1_armhf.deb。 - Valeriy Solovyov
但是在没有使用ansible的情况下运行相同的命令是有效的。请参考我的第三个故障排除步骤。基本上,我正在寻找为什么这在ansible上不起作用,而不是在我的树莓派上安装unrar-nonfree,因为我已经做过了。 - Leonel Galán
正如您可以在 https://github.com/ansible/ansible-modules-core/blob/release1.8.0/packaging/os/apt.py 中看到的那样,该模块正在使用 apt-get。尝试使用 Ansible-playbook -vvv 命令查看。 - Valeriy Solovyov
另外,您应该检查是否已添加存储库。 - Valeriy Solovyov
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接