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
< User:Kreyren
Revision as of 20:59, January 29, 2019 by Kreyren (talk | contribs) (→‎Making custom profile)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
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 TypeDescription
archDefines system architecture which states processor type and support for your system.
buildDefines system structure which configures system features. Supported variables are current, stable or experimental.
subarchDefines CPU optimizations for your system.
flavorDefines the general type of system for it's usecase, such as server or desktop.
mix-insDefines 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:

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