#62324 closed defect (fixed)
py-ansible @2.10.5_0 does not link binaries
Reported by: | jhoyt4 | Owned by: | adfernandes (Andrew Fernandes) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | jhoyt4, steenzout (Pedro Salgado), hnarayanan (Harish Narayanan) | |
Port: | py-ansible |
Description
The latest version of ansible does not (at least for python38) generate the appropriate symlink to it's binary in /opt/local/bin
% sudo port activate py38-ansible@2.10.5_0 ---> Computing dependencies for py38-ansible ---> Deactivating py38-ansible @2.9.10_0 ---> Cleaning py38-ansible ---> Activating py38-ansible @2.10.5_0 ---> Cleaning py38-ansible ---> Some of the ports you installed have notes: py38-ansible has the following notes: To make the Python 3.8 version of Ansible the one that is run when you execute the commands without a version suffix, e.g. 'ansible', run: port select --set ansible py38-ansible % sudo port select --set ansible py38-ansible Selecting 'py38-ansible' for 'ansible' failed: could not create new link "/opt/local/bin/ansible": target "/opt/local/bin/ansible-3.8" doesn't exist
% ls -l /opt/local/bin/ansible* lrwxr-xr-x 1 root admin 33 Feb 19 20:14 /opt/local/bin/ansible-config -> /opt/local/bin/ansible-config-3.8 lrwxr-xr-x 1 root admin 37 Feb 19 20:14 /opt/local/bin/ansible-connection -> /opt/local/bin/ansible-connection-3.8 lrwxr-xr-x 1 root admin 34 Feb 19 20:14 /opt/local/bin/ansible-console -> /opt/local/bin/ansible-console-3.8 lrwxr-xr-x 1 root admin 30 Feb 19 20:14 /opt/local/bin/ansible-doc -> /opt/local/bin/ansible-doc-3.8 lrwxr-xr-x 1 root admin 33 Feb 19 20:14 /opt/local/bin/ansible-galaxy -> /opt/local/bin/ansible-galaxy-3.8 lrwxr-xr-x 1 root admin 36 Feb 19 20:14 /opt/local/bin/ansible-inventory -> /opt/local/bin/ansible-inventory-3.8 lrwxr-xr-x 1 root admin 35 Feb 19 20:14 /opt/local/bin/ansible-playbook -> /opt/local/bin/ansible-playbook-3.8 lrwxr-xr-x 1 root admin 31 Feb 19 20:14 /opt/local/bin/ansible-pull -> /opt/local/bin/ansible-pull-3.8 lrwxr-xr-x 1 root admin 32 Feb 19 20:14 /opt/local/bin/ansible-vault -> /opt/local/bin/ansible-vault-3.8
Change History (29)
comment:1 Changed 4 years ago by jhoyt4
Cc: | jhoyt4 added |
---|
comment:2 Changed 4 years ago by jmroot (Joshua Root)
Cc: | steenzout added |
---|---|
Owner: | set to adfernandes |
Status: | new → assigned |
comment:3 Changed 4 years ago by jhoyt4
comment:4 Changed 4 years ago by tsabirgaliev (Tair Sabirgaliev)
Same with python39
~/P/g/macports-ports> sudo port select --set ansible py39-ansible Selecting 'py39-ansible' for 'ansible' failed: could not create new link "/opt/local/bin/ansible": target "/opt/local/bin/ansible-3.9" doesn't exist
comment:5 Changed 4 years ago by jhoyt4
switching back to py-ansible@2.10.5_0, the files are not installed into the proper python framework:
% sudo port activate py38-ansible@2.10.5_0 ---> Computing dependencies for py38-ansible ---> Deactivating py38-ansible @2.9.10_0 ---> Cleaning py38-ansible ---> Activating py38-ansible @2.10.5_0 ---> Cleaning py38-ansible ---> Some of the ports you installed have notes: py38-ansible has the following notes: To make the Python 3.8 version of Ansible the one that is run when you execute the commands without a version suffix, e.g. 'ansible', run: port select --set ansible py38-ansible
No ansible-* installed in the Python Framework (any, I checked Current, 2.7, 3.8, and 3.9)
% ll /opt/local/Library/Frameworks/Python.framework/Versions/3.8/bin total 200 drwxr-xr-x 32 root wheel 1.0K Feb 20 08:52 . drwxr-xr-x 9 root wheel 288B Dec 25 13:13 .. lrwxr-xr-x 1 root wheel 8B Dec 24 14:08 2to3 -> 2to3-3.8 -rwxr-xr-x 1 root wheel 150B Dec 24 14:08 2to3-3.8 -rwxr-xr-x 1 root wheel 1.0K Dec 18 08:14 chardetect -rwxr-xr-x 1 root wheel 1.0K Nov 14 23:32 cygdb -rwxr-xr-x 1 root wheel 1.0K Nov 14 23:32 cython -rwxr-xr-x 1 root wheel 1.0K Nov 14 23:32 cythonize -rwxr-xr-x 1 root wheel 1.0K Jan 23 08:01 easy_install -rwxr-xr-x 1 root wheel 1.0K Jan 23 08:01 easy_install-3.8 -rwxr-xr-x 1 root wheel 1.0K Nov 24 05:55 futurize lrwxr-xr-x 1 root wheel 7B Dec 24 14:08 idle3 -> idle3.8 -rwxr-xr-x 1 root wheel 148B Dec 24 14:08 idle3.8 -rwxr-xr-x 1 root wheel 1.0K Dec 15 12:24 macho_dump -rwxr-xr-x 1 root wheel 1.0K Dec 15 12:24 macho_find -rwxr-xr-x 1 root wheel 1.0K Dec 15 12:24 macho_standalone -rwxr-xr-x 1 root wheel 1.0K Jan 17 10:37 mako-render -rwxr-xr-x 1 root wheel 1.0K Nov 16 10:02 markdown_py -rwxr-xr-x 1 root wheel 1.0K Dec 15 12:24 modulegraph -rwxr-xr-x 1 root wheel 1.0K Nov 24 05:55 pasteurize -rwxr-xr-x 1 root wheel 998B Feb 2 07:33 pip -rwxr-xr-x 1 root wheel 1.0K Feb 2 07:33 pip3 -rwxr-xr-x 1 root wheel 1.0K Feb 2 07:33 pip3.8 -rwxr-xr-x 1 root wheel 1.0K Jan 16 13:07 py2applet lrwxr-xr-x 1 root wheel 8B Dec 24 14:08 pydoc3 -> pydoc3.8 -rwxr-xr-x 1 root wheel 133B Dec 24 14:08 pydoc3.8 -rwxr-xr-x 1 root wheel 1.0K Nov 19 08:08 pyjwt lrwxr-xr-x 1 root wheel 9B Dec 24 14:08 python3 -> python3.8 lrwxr-xr-x 1 root wheel 16B Dec 24 14:08 python3-config -> python3.8-config -rwxr-xr-x 1 root wheel 49K Dec 24 14:07 python3.8 -rwxr-xr-x 1 root wheel 2.1K Dec 24 14:08 python3.8-config -rwxr-xr-x 1 root wheel 1.0K Dec 15 11:57 wheel
comment:6 Changed 4 years ago by jhoyt4
no ansible-* binaries to be found in /optlocal/Library (was this even tested before being pushed?)
% cd /opt/local/Library % find . -print|grep ansible- ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info/PKG-INFO ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info/not-zip-safe ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info/SOURCES.txt ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info/requires.txt ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info/top_level.txt ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible-2.10.5-py3.8.egg-info/dependency_links.txt ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/gluster/gluster/.github/workflows/ansible-test-plugins.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/cyberark/conjur/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/google/cloud/roles/stackdriver_logging/molecule/default/.ansible-lint ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/google/cloud/roles/stackdriver_monitoring/molecule/default/.ansible-lint ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/google/cloud/.ansible-lint ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/cisco/mso/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/cisco/nso/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/cisco/aci/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/cloudscale_ch/cloud/.github/workflows/publish-ansible-galaxy.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/mellanox/onyx/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/dellemc/os10/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/dellemc/os6/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/dellemc/os9/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/okd/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/routeros/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/hrobot/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/unit/plugins/module_utils/xenserver/fixtures/ansible-test-vm-1-params.json ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/unit/plugins/module_utils/xenserver/fixtures/ansible-test-vm-2-facts.json ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/unit/plugins/module_utils/xenserver/fixtures/ansible-test-vm-2-params.json ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/unit/plugins/module_utils/xenserver/fixtures/ansible-test-vm-1-facts.json ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/unit/plugins/module_utils/xenserver/fixtures/ansible-test-vm-3-facts.json ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/unit/plugins/module_utils/xenserver/fixtures/ansible-test-vm-3-params.json ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/integration/targets/xml/fixtures/ansible-xml-beers.xml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/integration/targets/xml/fixtures/ansible-xml-namespaced-beers.xml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/general/tests/integration/targets/xml/fixtures/ansible-xml-beers-unicode.xml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/google/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/digitalocean/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/hashi_vault/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/grafana/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/mongodb/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/kubevirt/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/mysql/.github/workflows/ansible-test-roles.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/mysql/.github/workflows/ansible-test-plugins.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/skydive/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/kubernetes/changelogs/fragments/126-requires_ansible-version-constraints.yaml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/proxysql/.github/workflows/ansible-test-roles.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/community/proxysql/.github/workflows/ansible-test-plugins.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/servicenow/servicenow/.github/workflows/ansible-test.yml ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/ovirt/ovirt/ovirt-ansible-collection.spec ./Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ansible_collections/ovirt/ovirt/ovirt-ansible-collection.spec.in
comment:7 Changed 4 years ago by jhoyt4
Port: | py38-ansible py39-ansible added |
---|---|
Summary: | py38-ansible @2.10.5_0 does not link binaries → py-ansible @2.10.5_0 does not link binaries |
comment:8 Changed 4 years ago by mf2k (Frank Schima)
Port: | py38-ansible py39-ansible removed |
---|
comment:9 Changed 4 years ago by mf2k (Frank Schima)
Setting the port to py-ansible is all that is needed because it covers all of the sub-ports.
comment:10 Changed 4 years ago by jhoyt4
Perhaps this ansible 2.10 disclaimer is an omen to things breaking:
Starting in version 2.10, Ansible is made of two packages. You need to first uninstall the old Ansible version (2.9 or earlier) before upgrading. If you do not uninstall the older version of Ansible, you will see the following message, and no change will be performed: Cannot install ansible-base with a pre-existing ansible==2.x installation. Installing ansible-base with ansible-2.9 or older currently installed with pip is known to cause problems. Please uninstall ansible and install the new version: pip uninstall ansible pip install ansible-base
How does macports handle ansible-base?
comment:11 Changed 4 years ago by jhoyt4
Perhaps instructions on compiling ansible-base from source may be helpful:
https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#from-source
comment:13 Changed 4 years ago by adfernandes (Andrew Fernandes)
Ho ho!
That is very very different than the disclaimer that comes up when you build from source!
The comment during the build was only that PIP was unable to upgrade, so since Mac ports does not use raw PIP I thought it would be safe, and it appeared to work just fine.
Might just roll back to 2.9 until I have time to look at this closer.
comment:14 Changed 4 years ago by jhoyt4
working on a PR now - happy to get another set of eyes on it once I make the PR
comment:15 Changed 4 years ago by adfernandes (Andrew Fernandes)
John, are you working on a PR for 2.9 or 2.10? Happy to help, test, or whatever...
comment:17 Changed 4 years ago by jhoyt4
...it's compiling now, so hopefully I got through the worst of it...
comment:18 Changed 4 years ago by tsabirgaliev (Tair Sabirgaliev)
@jhoyt4 I'm sorry didn't see you already doing the fix. here is my PR https://github.com/macports/macports-ports/pull/10073
comment:19 Changed 4 years ago by jhoyt4
comment:20 Changed 4 years ago by jhoyt4
No worries Tair - we can let @adfernandes sort out their preferences
comment:21 Changed 4 years ago by jhoyt4
I closed my PR in favor of Tair's https://github.com/macports/macports-ports/pull/10073
comment:22 Changed 4 years ago by adfernandes (Andrew Fernandes)
Okay, thanks, John - I was just reviewing them and was leaning that way, too.
Thank you, though - I really appreciate both of your work!
comment:23 Changed 4 years ago by adfernandes (Andrew Fernandes)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:24 Changed 4 years ago by hnarayanan (Harish Narayanan)
Cc: | hnarayanan added |
---|
comment:25 Changed 4 years ago by hnarayanan (Harish Narayanan)
I see this is merged but I don't see ansible-base as part of my list of available ports even after doing a port selfupdate
. Is there something else I must be doing?
comment:26 Changed 4 years ago by jhoyt4
are you pulling ports down from git (non-default install) or the tarball (default install)?
comment:27 Changed 4 years ago by hnarayanan (Harish Narayanan)
Presumably tarball as I assume my installation is fairly standard. Should I read up on how to convert this to an installation from git?
I assumed the selfupdate
step that rsyncs Ports files is somehow connected to the state of the ports repository on GitHub.
comment:28 Changed 4 years ago by jhoyt4
Yep - that's it. The tarballs tend to lang behind git quite a bit.
To swap over to git follow step 3 here:
https://guide.macports.org/#installing.macports.git
Then run 'port selfupdate' or 'port -d selfupdate' if you want to watch the progress. This will take a LONG time the first time you run the selfupdate as it has to walk the entire port tree.
Here's the same check with py-ansible@2.9.10