Posted on 01-17-2024 03:39 AM
Does anyone have, or can anyone advise on how to create, a manifest file for installing the Python 3.12.1?
Pretty new to macOS administration, and very new to Jamf Pro, but would like to be able to deploy the Python 3.12.1 package through Self Service but not been able to get it to work. I'm presuming it is because I've not declared a manifest file, and using Composer reports a whole load of Deleted Files and Modified Files which I think are unique to my machine configuration and even the Files For Package seems to include a whole load of irrelevant files.
Any help will be gratefully received.
Solved! Go to Solution.
Posted on 01-17-2024 04:35 AM
You can't update the preinstalled version of Python on macOS as its SIP protected. You can, however, deploy a second install of python which should come prepacked as @jamf-42 suggested.
Posted on 01-17-2024 08:36 AM
upload the python pkg you downloaded to jamf.. nothing else is needed.. tag in policy..
Posted on 01-17-2024 03:49 AM
download the required pkg version here https://www.python.org/downloads/macos/
but note that if they already have Python installed, they should manage it..
Posted on 01-17-2024 04:35 AM
You can't update the preinstalled version of Python on macOS as its SIP protected. You can, however, deploy a second install of python which should come prepacked as @jamf-42 suggested.
Posted on 01-17-2024 05:29 AM
Thanks for the feedback @jamf-42 and @AJPinto.
To provide some clarity, I'm looking to provide Python 3.12.1 as my company is due to refresh a number of devices which will now be managed by Jamf Pro. I note, looking at a test device, that by default when machines are updated to macOS Sonoma 14.2.1 the available Python is version 3.9.6 (/usr/bin/python3). A number of the new devices will need to be updated with the latest stable version of Python (3.12.1).
When manually installing Python 3.12.1 (python-3.12.1-macos11.pkg) as downloaded from python.org, this creates:
Now with regard to Jamf Pro, I've created a Package and upload the .pkg file; created a Policy which makes it available through Self Service; but when selecting the option to install it doesn't appear to do anything albeit it reports done. When checking the logs this is what it shows:
Posted on 01-17-2024 06:02 AM
This python package cannot update macOS's preinstalled python version (3.9.6). Instead, it installs a second instance of Python which you need to know how to call specifically. You should see a Python 3.12 folder in Applications if the package worked.
I cannot stress enough, inspect packages before you install them. Knowing what the packages actually do is invaluable for knowing how to validate the install, in addition to a good security practice.
Posted on 01-17-2024 08:02 AM
Thanks for the response @AJPinto, and the introduction to Suspicious Package which looks like a useful tool.
I think the conversation is moving away from what the issue is, that being deploying a Package file (.pkg) through Jamf Pro doesn't work.
I've got three apps that currently can be deployed through Self Service, but these originally were downloaded as DMG files (.dmg). As advised by Jamf Support, I manually installed them then used Composer to create a package file and manifest file before creating a package in Settings > Packages for deployment through Self Service. Given that I've downloaded the Python package file, and based on Jamf's documentation, it looks like all I should need to do is create the package under Settings > Packages using the original .pkg file. This, though, doesn't work.
So the question/issue is what is about the Python package, or the way I'm setting up in Jamf Pro, that prevents it from installing properly?
Posted on 01-17-2024 08:36 AM
upload the python pkg you downloaded to jamf.. nothing else is needed.. tag in policy..
01-17-2024 11:26 AM - edited 01-17-2024 11:30 AM
Python should come as a .pkg, not a .dmg. You should be able to simply upload the python .pkg to Jamf, add it to a policy payload, and deploy with no other changes needed.
Python Releases for macOS | Python.org
If you are manually building a package, you should be able to check to see if the contents of the package are being placed where you are expecting them to go. Run the package locally, before uploading it to Jamf and confirm it works. Unless you added a script to the package with exit codes, a package will report success to Jamf about 100% of the time as there are no failure conditions.
Any information in Jamfs policy log comes from scripts in the package. If you are not putting scripts in the package that are echoing things the Jamf log wont have anything. You can also check the install.log on the device.
Posted on 01-17-2024 09:49 AM
You make it sound so simple @jamf-42, and I would agree with you given my experience on setting up a couple of other apps albeit they were DMG files (.dmg), but simply "upload the python pkg you downloaded to jamf" doesn't work.
I've just downloaded the Zoom full installer file (https://zoom.us/download) zoomusInstallerFull.pkg and set up a package and policy and though it is available in Self Service clicking on Install does not result in the app being installed. Running the package interactively it installs perfectly fine, so there is clearly more to installing a package than simply uploading the file through Settings > Packages and creating a Policy but I can't find out what it is.
Posted on 01-17-2024 09:56 AM
ok.. open terminal.. twice.. in the 1st one type:
tail -f /var/log/jamf.log
and in the other type:
tail -f /var/log/install.log
run your self service installs.. and lets see whats going on....
deploying via Self Service with a pkg.. is just, upload pkg, create policy.. add pkg.. set scope, set self service options.. other options can be set.. but this is the basics..
post a pic of the policy.. ?
Posted on 01-17-2024 11:27 AM
@jamf-42 have been able to work out the issue, in that the Policies were not saved properly - and when previously checking them seeing what I expected to see, rather than registering what was actually there. Having had a break I realised that though I believed the Policies had a designated Package there wasn't one defined.
Having added the Package, all is working as expected. Therefore, it is as simple as uploading the package to Jamf providing the package is actually then defined in the policy.
Thanks for the help, as it did help lead me to resolving the issue.