cookbook 'pyenv', '= 3.1.1'
pyenv
(21) Versions
3.1.1
-
Follow3
Manages pyenv and its installed Python versions.
cookbook 'pyenv', '= 3.1.1', :supermarket
knife supermarket install pyenv
knife supermarket download pyenv
pyenv Chef Cookbook
Description
Manages [pyenv][pyenv] and its installed Pythons.
Several custom resources are defined to facilitate this.
WARNING As of v1.0.0
, this cookbook no longer provide any recipes. Custom resources are provided instead.
NOTE The following distros have [known issues][openssl-issues] regarding building python 3.7
which are all related to the OpenSSL library versions.
- RHEL6
- Debian 8
Requirements
Chef
This cookbook requires Chef 14.0+.
Platform family
- Debian derivatives (debian, ubuntu)
- Fedora
- RHEL derivatives (RHEL, CentOS, Amazon Linux, Oracle, Scientific Linux)
- openSUSE and openSUSE leap
Usage
Examples installtions are provided in test/fixtures/cookbooks/test/recipes
A pyenv_system_install
or pyenv_user_install
is required to be set so that pyenv knows which version you want to use, and is installed on the system.
Pip
Used to install a Python package into the selected pyenv environment.
pyenv_pip 'requests' do virtualenv # Optional: if passed, pip inside provided virtualenv would be used (by default system's pip) version # Optional: if passed, the version the python package to install user # Optional: if passed, the user to install the python module for options # Optional: if passed, pip would install/uninstall packages with given options requirement # Optional: if true passed, install/uninstall requirements file passed with name property editable # Optional: if true passed, install package in editable mode end
Global
pyenv_global '3.6.1' do user # Optional: if passed sets the users global version. Do not set, to set the systems global version end
If a user is passed in to this resource it sets the global version for the user, under the users root_path (usually ~/.pyenv/version
), otherwise it sets the system global version.
Plugin
Installs a pyenv plugin.
pyenv_plugin 'virtualenv' do git_url # Git URL of the plugin git_ref # Git reference of the plugin environment # Optional: pass environment variables to git resource user # Optional: if passed installs to the users pyenv. Do not set, to set installs to the system pyenv. end
Rehash
pyenv_rehash 'rehash' do user # Optional: if passed rehashes the user pyenv otherwise rehashes the system pyenv end
Python
pyenv_python '3.6.1' do user # Optional: if passed, the user pyenv to install to environment # Optional: pass environment variable to git resource pyenv_action # Optional: the action to perform, install, remove etc verbose # Optional: print verbose output during python installation end
Shorter example pyenv_python '3.6.1'.
Script
Runs a pyenv aware script.
pyenv_script 'foo' do code # Script code to run pyenv_version # pyenv version to run the script against environment # Optional: Environment to setup to run the script user # Optional: User to run as group # Optional: Group to run as path # Optional: Path to search for commands returns # Optional: Expected return code end
System install
Installs pyenv to the system location, by default /usr/local/pyenv
pyenv_system_install 'foo' do git_url # URL of the plugin repo you want to checkout git_ref # Optional: Git reference to checkout environment # Optional: pass environment variable during pyenv installation update_pyenv # Optional: Keeps the git repo up to date end
User install
Installs pyenv to the user path, making pyenv available to that user only.
pyenv_user_install 'vagrant' do git_url # Optional: Git URL to checkout pyenv from. git_ref # Optional: Git reference to checkout e.g. 'master' environment # Optional: pass environment variable during pyenv installation user # Which user to install pyenv to (also specified in the resources name above) end
System-Wide Mac Installation Note
This cookbook takes advantage of managing profile fragments in an
/etc/profile.d
directory, common on most Unix-flavored platforms.
Unfortunately, Mac OS X does not support this idiom out of the box,
so you may need to [modify][mac_profile_d] your user profile.
Development
- Source hosted at GitHub
- Report issues/Questions/Feature requests on GitHub Issues
Pull requests are very welcome! Make sure your patches are well tested.
License and Author
- Copyright 2014, [Shane da Silva][sds]
- Copyright 2017, [Darwin D. Wu][darwin]
Contributors
This project exists thanks to all the people who contribute.
Backers
Thank you to all our backers!
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
Dependent cookbooks
This cookbook has no specified dependencies.
Contingent cookbooks
pyenv Changelog
3.1.1
- Migrated ownership to Sous-Chefs
- Latest cookstyle fixes (5.9.3)
3.1.0
- invoke
pip install
only necessary #34
3.0.0
- deprecate support for Chef 13 due to EOL
- update cookbook to use
apt_update
andbuild_essential
resources from Chef 14 make sure builds don't failed because of lack of packages
2.1.0
- add support for virtualenv installation and uninstallation.
- add support for passing environment variable during pyenv, python and plugin installation.
- delete "reinstall" property from pip resource and replace it with general "options" property
- make pyenv_script fail on any subcommand failure
Thanks to @ssps!
2.0.0
- Dropping support for Chef 12
1.0.0 (BREAKING CHANGES!!)
- Refactor and update the legacy code base. Recipes are no longer provided, and custom resources are used to manage pyenv installations instead.
- update
system_install
to be a resource - update
user_install
to be a resource - update
script
resource - update
python
resource - update
global
resource - update
rehash
resource - create
plugin
resource - create
pip
resource - update integration tests
- add linting to CI
- delete all recipes
- delete matchers
- delete
chef_pyenv_recipe_helpers
library - delete
chef_pyenv_mixin
library - add support for Fedora, RedHat distros and OpenSUSE
0.2.0
- Add oracle linux support
- Update syntax for chef-client v13
- Update gems and dependencies
- Add integration tests on travis
0.1.4
- Updated deprecated methods used in attributes.rb
0.1.0
- Update default pyenv version to v0.4.0-20140516
- Add support for CentOS 6.5
- Install
make
,build-essential
,libssl-dev
,zlib1g-dev
,wget
,curl
, andllvm
on Debian machines
0.0.1
- Initial port of chef-rbenv
License Metric
3.1.1 passed this metric
3.1.1 passed this metric