Itamae/MItamae resources for Portage (Gentoo Linux)
Ruby Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib portage_pin: version shouldn't include operators Mar 4, 2017
mrblib portage_pin: version shouldn't include operators Mar 4, 2017
script init Sep 20, 2015
spec support diff_found! Jun 2, 2016
.gitignore init Sep 20, 2015
.rspec init Sep 20, 2015
.travis.yml init Sep 20, 2015
Gemfile init Sep 20, 2015
LICENSE.txt init Sep 20, 2015 experimental mitamae support Jan 8, 2017
Rakefile init Sep 20, 2015
itamae-plugin-resource-portage.gemspec write gemspec Jan 9, 2016


Portage related resources (flags, keywords, packages) plugin for itamae and mitamae.



mkdir -p ./plugins
git submodule add plugins/itamae-plugin-resource-portage
# or `git clone`


gem 'itamae-plugin-resource-portage'


  • eix


Basic attributes

All resources take name, slot, version, and/or atom attribtues

  • name (default_name): package name (category/name)
  • version (+ slot) or atom:
    • version: package version + operator (e.g. 1.0.0, >=1.0.0, <2.0.0)
    • slot: (optional)
    • atom: if specified, version and slot are ignored

portage_accept_keywords, portage_mask, portage_unmask, portage_use resource take additionally:

  • action: :add (default) or :remove
  • target: when absolute path given, the resource will use that path to modify (e.g. /etc/portage/package.use/foobar). Otherwise, given name under appropriate directory will be used (e.g. foobar to /etc/portage/package.XXX/foobar); Default to /etc/portage/package.XXX/itamae or /etc/portage/package.XXX (only when it exists as file)

portage resource

portage resource defines portage_package, portage_unmask, portage_accept_keywords, portage_use, and/or portage_pin resources based on given attributes.

portage "www-servers/nginx" do

portage "www-servers/nginx" do
  version "1.9.7" 

  flags ['nginx_modules_http_stub_status']

  # accept keywords by default, but if you want to disable:
  # keywords []

  # Mask =version and unmask !=version
  pin true
  • action: install (default), remove
  • unmask (nil/bool):
  • pin (bool):
  • noreplace (bool, default=true):
  • oneshot (bool, default=false):
  • flags (array)
  • keywords (array,default=[$ARCH])
  • package_use_file
  • package_mask_file
  • package_unmask_file
  • package_accept_keywords_file
  • emerge_cmd:
  • eix_cmd:

portage_accept_keywords resource

portage_accept_keywords "www-servers/nginx" do
  keywords ['~amd64']
  • keywords: Default to $ARCH (eix --print ARCH)

portage_mask resource

portage_pin resource

portage_package resource


After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to


Bug reports and pull requests are welcome on GitHub at[USERNAME]/itamae-plugin-resource-portage.


The gem is available as open source under the terms of the MIT License.