The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
User:Kreyren/Install/Download Portage Tree
Download Portage Tree
Install Guide: Download Portage Tree
Install Guide, Chapter 10 | < Prev | Next > |
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
</translate>
Making custom profile
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. Such configuration dictates a design by which system is configured.
Sub-Profile Type | Description |
---|---|
arch | Typically x86-32bit or x86-64bit , this defines the processor type and support of your system. This is defined when your stage was built and should not be changed. |
build | Defines whether your system is a current , stable or experimental build. At the moment, all Funtoo Linux builds use the funtoo-current build profile. |
subarch | Defines CPU optimizations for your system. The subarch is set at the time the stage3 is built, but can be changed later to better settings if necessary. Be sure to pick a setting that is compatible with your CPU. |
flavor | Defines the general type of system, such as server or desktop , and will set default USE flags appropriate for your needs. |
mix-ins | Defines various optional settings that you may be interested in enabling. |
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 # (?)