The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
User:Kreyren/Install/Download Portage Tree
Install Guide, Chapter 10 | < Prev | Next > |
THIS IS A WORK IN PROGRESS WIKI-PAGE
Install Guide: Download Portage Tree
Now it's time to install the Portage repository, which contains package scripts (ebuilds) that tell portage how to build and install thousands of different software packages. To create the Portage repository, simply run ego sync
from within the chroot. This will automatically clone the portage tree from GitHub and all kits:
(chroot) # ego sync
Making custom profile
Funtoo uses `epro` which stands for `ego profile` and is used to make a profile from which portage takes it's core variables to compile packages. Such configuration dictates a design by which system is configured.
Sub-Profile Type | Description |
---|---|
arch | Defines system architecture which states processor type and support for your system. |
build | Defines system structure which configures system features. Supported variables are current , stable or experimental . |
subarch | Defines CPU optimizations for your system. |
flavor | Defines the general type of system for it's usecase, such as server or desktop . |
mix-ins | Defines additional configuration. |
Relevant: https://www.funtoo.org/Experimental_branch
One arch, build and flavor must be set for each Funtoo Linux system, while mix-ins are optional and you can enable more than one if desired. Often, flavors and mix-ins inherit settings from other sub-profiles. Use epro show
to view your current profile settings, in addition to any inheritance information:
(chroot) # epro show === Enabled Profiles: === arch: x86-64bit build: current subarch: intel64-haswell flavor: desktop mix-ins: gnome === All inherited flavors from desktop flavor: === root ##c##workstation##!c## (from desktop flavor) core (from workstation flavor) minimal (from core flavor) === All inherited mix-ins from desktop flavor: === root ##c##X##!c## (from workstation flavor) audio (from workstation flavor) dvd (from workstation flavor) media (from workstation flavor) mediadevice-audio-consumer (from media mix-in) mediadevice-base (from mediadevice-audio-consumer mix-in) mediadevice-video-consumer (from media mix-in) mediadevice-base (from mediadevice-video-consumer mix-in) mediaformat-audio-common (from media mix-in) mediaformat-gfx-common (from media mix-in) mediaformat-video-common (from media mix-in) console-extras (from workstation flavor) print (from desktop flavor)
Here are some basic examples of epro
usage:
Description | Command |
---|---|
View available profiles. Enabled profiles will be highlighted in cyan. Directly enabled profiles will be in bold and have a * appended. | epro list |
Change the system flavor. | epro flavor desktop |
Add a mix-in. | epro mix-in +gnome |
Funtoo uses `epro` which states for TODO and is used to make a profile from which portage takes it's core variables to compile packages.
epro parses it's configuration in /etc/portage/make.profile/parent which is then recognized by funtoo's portage.
start by invoking `mv /etc/portage/make.profile/parent /etc/portage/make.profile/parent.old && touch /etc/portage/make.profile/parent` to wipe source file.
Next invoke `epro list` to output all supported configuration for each variable.
Variables - arch - System architecture - build - system build - subarch - System subarch, used for CPU optimization for GCC compile - flavor - system design configuration - mix-ins - additional configuration
Relevant: https://www.funtoo.org/Install/Profiles
TODO: updated based on relevant.
Reasoning: Making profile prior to emerging system allows for supperior configuration and faster installation.
Troubleshooting
Unvailable repository
This error is caused by using Gentoo's variables that are not supported by `ego`. (?)
ERROR:
... Syncing nokit branch 1.3-release Already on '1.3-release' Your branch is up to date with 'origin/1.3-release'. HEAD is now at 80508cd7 updates Already up to date. Sync successful and kits in alignment! :) Updating /etc/portage/repos.conf... Updating profiles at /etc/portage/make.profile/parent... !!! Invalid PORTDIR_OVERLAY (not a dir): '/usr/local/portage' !!! Section 'core-kit' in repos.conf has location attribute set to nonexistent directory: '/usr/portage' !!! main-repo not set in DEFAULT and PORTDIR is empty. Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/core-gl-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/core-hw-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/core-server-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/core-ui-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/desktop-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/dev-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/editors-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/games-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/gnome-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/haskell-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/java-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/kde-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/lang-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/lisp-scheme-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/llvm-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/media-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/ml-lang-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/net-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/nokit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/perl-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/python-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/python-modules-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/ruby-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/science-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/security-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/text-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/xfce-kit/metadata/layout.conf' Unavailable repository 'core-kit' referenced by masters entry in '/var/git/meta-repo/kits/xorg-kit/metadata/layout.conf' !!! Unable to parse profile: '/etc/portage/make.profile' !!! ParseError: Parent 'core-kit:funtoo/1.0/linux-gnu/arch/x86-64bit' not found: '/etc/portage/make.profile/parent'
SOLUTION:
Followed configuration in make.conf is NOT sane.
## PKGDIR="/var/cache/portage/packages" ## PORTAGE_CONFIGROOT="/" ## PORTAGE_TMPDIR="/var/tmp" ## DISTDIR="/var/cache/portage/distfiles" ## PORTDIR=/usr/portage ## PORTAGE_TMPDIR=/var/tmp # (?)