9

我正在基于如何安装 unrar-nonfree? 在 Raspbian 上安装 unrar-nonfree?(raspberrypi.stackexchange.com)但使用 Ansible。我使用 ansibles: 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": "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 年 3 月

  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) ...
4

1 回答 1

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/
于 2016-04-28T20:21:38.187 回答