You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5.5 KiB

The Gentoo Science Project Repository

pkgcheck repoman contributions welcome chat on freenode

This is an official mirror of the Gentoo Science ebuild repository, containing numerous scientific software packages.

See Project:Science for more information on the project.


  1. Installation
  1. Usage
  2. Contributing


Eselect-repository install

The easiest way to enable the overlay is to:

emerge --noreplace eselect-repository && eselect repository enable science && emerge --sync

and emerge the package as usual.

Manual Install

As per the current Portage specifications, ebuild repositories (a.k.a. overlays) can be managed via file collections under /etc/portage/repos.conf/, via the new plug-in sync system.

To enable the overlay without the need for additional software, you first need to have git installed:

emerge --ask --verbose dev-vcs/git

Then you need to add the science repository configuration by downloading the science.conf file:

wget \
	-O /etc/portage/repos.conf/science

Manual Uninstall

To uninstall the overlay, simply run:

rm /etc/portage/repos.conf/science
rm /var/db/repos/science -rf

Layman Install

You can also install the overlay via the layman overlay manager.

emerge --ask --verbose app-portage/layman
layman --add science

Layman Uninstall

To delete the overlay, run:

layman --delete science

Using Packages from ::science

To start using the overlay you now only need to get the newest files, via:

emerge --sync science

To be able to install ::science packages you need to make sure that you are accepting the ~${ARCH} keyword for your respective architecture. This may already be the case globally on your system, and you can check whether this is the case by running:

grep "~$(portageq envvar ARCH)" /etc/portage/make.conf

If the above returns empty, you will need to instruct Portage to accept ~${ARCH} packages.

This can be done for ::science specifically:

mkdir -p /etc/portage/package.accept_keywords
printf '*/*::science ~%s' "$(portageq envvar ARCH)" >> /etc/portage/package.accept_keywords/science

If the above fails with mkdir: cannot create directory ‘/etc/portage/package.accept_keywords’: File exists this means you are using a file and not a directory, and you can instead run:

printf '*/*::science ~%s' "$(portageq envvar ARCH)" >> /etc/portage/package.accept_keywords

Alternatively, and only if you know what you are doing, you can accept ~${ARCH} packages globally:

printf 'ACCEPT_KEYWORDS="~%s"' "$(portageq envvar ARCH)" >> /etc/portage/make.conf

The downside of this approach is potentially higher instability, the advantage is that often ::science packages require ~${ARCH} packages from ::gentoo as well.


If you fork, we will merge!
We welcome new contributors and are happy to include new packages.

Areas to contribute

find . -type f -name "*.ebuild" ! \( -wholename "*.git*" -o -wholename "*profile*" -o -wholename "*metadata*" \) | while read ff; do grep -lRE "EAPI.*6" /dev/null $ff; done


For a brief introduction please see our contributing guide. Further helpful resources are:

Additionally, please make sure to add the Science Project as an additional maintainer to any new packages you submit. For an example, take a look at the metadata for the Numba package - dev-python/numba/metadata.xml


You can ask for help on Freenode IRC in #gentoo-science. Alternatively you can report bugs on the GitHub issues page.