Provision fails: "No package matching "python-software-properties"

This is weird: on a brand new VPS running Ubuntu 16.04.2 LTS, using latest trellis (0.9.9) I cannot seem to provision the server.

The message:


failed: [next.domain.com] (item=[u'python-software-properties', u'python-pycurl', u'build-essential', u'python-mysqldb', u'curl', u'git-core', u'dbus', u'libnss-myhostname']) => {"failed": true, "item": ["python-software-properties", "python-pycurl", "build-essential", "python-mysqldb", "curl", "git-core", "dbus", "libnss-myhostname"]}

  • I’ve tried installing the missing package manually but it refuses, saying:

Package python-software-properties is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
  software-properties-common

E: Package 'python-software-properties' has no installation candidate

So I installed the suggested package instead, no go. Same error message. What is going on?

The full log:

$ ansible-playbook server.yml -e env=production


PLAY [Ensure necessary variables are defined] **********************************

TASK [Ensure environment is defined] *******************************************
skipping: [localhost]

PLAY [Determine Remote User] ***************************************************

TASK [remote-user : Require manual definition of remote-user] ******************
skipping: [next.domain.com]

TASK [remote-user : Check whether Ansible can connect as root] *****************
ok: [next.domain.com -> localhost]

TASK [remote-user : Set remote user for each host] *****************************
ok: [next.domain.com]

TASK [remote-user : Announce which user was selected] **************************
Note: Ansible will attempt connections as user = pixeline
ok: [next.domain.com]

TASK [remote-user : Load become password] **************************************
ok: [next.domain.com]

PLAY [Install prerequisites] ***************************************************

TASK [Install Python 2.x] ******************************************************
ok: [next.domain.com]

PLAY [WordPress Server - Install LEMP Stack with PHP 7.1 and MariaDB MySQL] ****

TASK [setup] *******************************************************************
ok: [next.domain.com]

TASK [common : Validate Ansible version] ***************************************
skipping: [next.domain.com]

TASK [common : Validate format of site_hosts] **********************************
skipping: [next.domain.com] => (item=domain.com)

TASK [common : Validate Ubuntu version] ****************************************
skipping: [next.domain.com]

TASK [common : Check whether passlib is needed] ********************************
skipping: [next.domain.com]

TASK [common : Checking essentials] ********************************************
System info:
  Ansible 2.2.0.0; Darwin
  Trellis at "Accommodate template inheritance for nginx confs"
---------------------------------------------------
No package matching 'python-software-properties' is available
failed: [next.domain.com] (item=[u'python-software-properties', u'python-pycurl', u'build-essential', u'python-mysqldb', u'curl', u'git-core', u'dbus', u'libnss-myhostname']) => {"failed": true, "item": ["python-software-properties", "python-pycurl", "build-essential", "python-mysqldb", "curl", "git-core", "dbus", "libnss-myhostname"]}
	to retry, use: --limit @/Users/aplennevaux/GITHUB/customername-clean/trellis/server.retry

PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=0
next.domain.com              : ok=6    changed=0    unreachable=0    failed=1

I managed to solve this thanks to this answer on SO.

Basically:

  1. Log via SSH to the server
  2. Rebuild the Sources list using this (awesome) tool.
  3. Then launch the curl that it generates
  4. apt-get update
  5. apt-get install python-software-properties
  6. retry provisioning.

I was testing this out on 18.04 bionic by doing a switcheroo for this:

Cut python-software-properties
Paste software-properties-common

TOTAL FAIL!!

Reverted to an AWS 16 instead

1 Like