Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

User:Kreyren/Install/Download Portage Tree

From Funtoo
Jump to navigation Jump to search

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

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.

Funtoo Profiles

Sub-Profile TypeDescription
archTypically 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.
buildDefines whether your system is a current, stable or experimental build. At the moment, all Funtoo Linux builds use the funtoo-current build profile.
subarchDefines 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.
flavorDefines the general type of system, such as server or desktop, and will set default USE flags appropriate for your needs.
mix-insDefines 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:

DescriptionCommand
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

Template:Stub

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 # (?)