The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Difference between revisions of "Package:Ego"
(reverting my changes) |
|||
(9 intermediate revisions by one other user not shown) | |||
Line 7: | Line 7: | ||
{{c|ego}} is Funtoo's official system personality management tool, designed to eventually replace the venerable {{c|eselect}} from Gentoo Linux. Daniel Robbins created a new meta-tool to replace eselect because eselect has a couple of design issues. It requires extensions to be written as shell scripts, which is a big limitation. With the advent of Funtoo's modular profile system, {{c|eselect profile}} was becoming cumbersome to use, and I needed to make the tool faster and more feature-rich. Ultimately, shell scripts are too slow and too hard to use to implement advanced functionality. | {{c|ego}} is Funtoo's official system personality management tool, designed to eventually replace the venerable {{c|eselect}} from Gentoo Linux. Daniel Robbins created a new meta-tool to replace eselect because eselect has a couple of design issues. It requires extensions to be written as shell scripts, which is a big limitation. With the advent of Funtoo's modular profile system, {{c|eselect profile}} was becoming cumbersome to use, and I needed to make the tool faster and more feature-rich. Ultimately, shell scripts are too slow and too hard to use to implement advanced functionality. | ||
{{c|ego}} is a meta-tool that works similarly to eselect. Typing {{c|ego}} will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example, {{c|epro}} is a shortcut for {{c|ego profile}}. | {{c|ego}} is a meta-tool that works similarly to eselect. Typing {{c|ego}} will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example, {{c|epro}} is a shortcut for {{c|ego profile}}. Please see the [[Funtoo Profiles]] page for detailed documentation on {{c|ego profile}}. | ||
== Ego Modules == | |||
{{TableStart}} | {{TableStart}} | ||
{{3Col|'''type'''|'''sub-command'''|'''description'''}} | {{3Col|'''type'''|'''sub-command'''|'''description'''}} | ||
{{3Col|profile|{{c|epro}}|Profile management -- see [[Funtoo Profiles]] for usage information}} | {{3Col|profile|{{c|epro}}|Profile management -- see [[Funtoo Profiles]] for usage information}} | ||
{{3Col|doc|{{c|edoc}}|Display wiki documentation}} | |||
{{3Col|query|-|Query information about packages}} | |||
{{3Col|sync|-|Synchronize Portage tree}} | |||
{{TableEnd}} | {{TableEnd}} | ||
=== Query module === | |||
{{c|ego query}} module is a tool to display information about packages. Bellow are described the various available commands. | |||
==== Versions ==== | |||
The {{c|versions}} (shortcut: {{c|v}}) command lists all available versions matching a given atom. For each version, it also shows its slot and repository (along with git branch if any). | |||
<console> | |||
$##i## ego query versions python | |||
dev-lang/python| slot| repo | |||
----------------+---------+--------------------- | |||
##c##2.7.12##!c##| ##y##2.7##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
##b##* ##c##2.7.13##!c####!b##| | ##bl##python-kit##!bl##/##g##3.6-prime | |||
----------------+---------+--------------------- | |||
##c##3.4.5##!c##| ##y##3.4/3.4m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
##c##3.4.6##!c##| | ##bl##python-kit##!bl##/##g##3.6-prime | |||
----------------+---------+--------------------- | |||
##b##* ##c##3.5.3##!c####!b##| ##y##3.5/3.5m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
----------------+---------+--------------------- | |||
##b##* ##c##3.6.1-r1##!c####!b##| ##y##3.6/3.6m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
$##i## ego query versions '=python-3*' | |||
dev-lang/python| slot| repo | |||
----------------+---------+--------------------- | |||
##c##3.4.5##!c##| ##y##3.4/3.4m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
##c##3.4.6##!c##| | ##bl##python-kit##!bl##/##g##3.6-prime | |||
----------------+---------+--------------------- | |||
##b##* ##c##3.5.3##!c####!b##| ##y##3.5/3.5m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
----------------+---------+--------------------- | |||
##b##* ##c##3.6.1-r1##!c####!b##| ##y##3.6/3.6m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
$##i## ego query v dev-lang/python:3.5 | |||
dev-lang/python| slot| repo | |||
----------------+---------+--------------------- | |||
##b##* ##c##3.5.3##!c####!b##| ##y##3.5/3.5m##!y##| ##bl##python-kit##!bl##/##g##3.6-prime | |||
$##i## ego query v coffee-script | |||
dev-lang/coffee-script| slot| repo | |||
-----------------------+-----+--------------- | |||
##c##1.9.3-r1##!c##| ##y##0##!y##| ##bl##dev-kit##!bl##/##g##master | |||
##b##* ##c##1.12.5##!c####!b##| | ##bl##dev-kit##!bl##/##g##master | |||
dev-ruby/coffee-script| slot| repo | |||
-----------------------+-----+--------------- | |||
##c##2.4.1##!c##| ##y##0##!y##| ##bl##dev-kit##!bl##/##g##master | |||
</console> | |||
Installed versions are in bold and marked with a star. | |||
==== Origin ==== | |||
The {{c|origin}} (shortcut: {{c|o}}) command will tell you where a given package comes from and give you the URL to browse the ebuilds. This is mainly a tool for developers designed to figure out where fixes should be applied. | |||
<console> | |||
$##i## ego query origin dev-python/appi | |||
dev-python/appi::python-kit comes from ##g##flora | |||
##bl##https://github.com/funtoo/flora/tree/master/dev-python/appi | |||
$##i## ego query o screen | |||
app-misc/screen::core-kit comes from ##g##kit-fixups | |||
##bl##https://github.com/funtoo/kit-fixups/tree/master/core-kit/global/app-misc/screen | |||
##c##https://gitweb.gentoo.org/repo/gentoo.git/tree/app-misc/screen | |||
app-vim/screen::editors-kit comes from ##g##gentoo-staging | |||
##bl##http://git.funtoo.org/gentoo-staging/tree/app-vim/screen | |||
##c##https://gitweb.gentoo.org/repo/gentoo.git/tree/app-vim/screen | |||
</console> | |||
When the package is also available in Gentoo, the URL to the Gentoo repository is also shown in cyan as you may want to compare Funtoo version with Gentoo's. | |||
==== Bugs ==== | |||
The {{c|bugs}} command lists bugs reported on https://bugs.funtoo.org/ regarding the given atom. This allows you to quickly find out if an issue you're facing was reported recently. | |||
<console> | |||
$##i## ego query bugs www-client/chromium | |||
##r##FL-4233 ##c##2017-09-21 ##bl##Closed ##y##Unable to emerge the package 'www-client/chromium' due to a missing dependency | |||
##r##FL-3019 ##c##2015-11-27 ##bl##Closed ##y##Emerge fails to find proper dependencies for www-client/chromium on arm with system-ffmpeg | |||
##r##FL-444 ##c##2013-03-05 ##bl##Closed ##y##www-client/chromium depends on missing >=media-libs/mesa-9.1 | |||
$##i## ego query bugs mesa | |||
##r##FL-3269 ##c##2016-07-19 ##bl##Backlog ##y##media-libs/mesa need video_cards_virgl use flag. | |||
##r##FL-2225 ##c##2015-03-29 ##bl##Closed ##y##[media-libs/mesa] upgrading to 10.4.4 failed | |||
##r##FL-2224 ##c##2015-03-29 ##bl##Closed ##y##[media-libs/mesa] bump new 10.4.4 version to 10.4.7 | |||
##r##FL-634 ##c##2013-07-22 ##bl##Closed ##y##portage complaining that media-libs/mesa and x11-libs/cairo need openvg flag | |||
</console> | |||
{{EbuildFooter}} | {{EbuildFooter}} |
Latest revision as of 05:22, September 26, 2019
Ego
We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.
ego
is Funtoo's official system personality management tool, designed to eventually replace the venerable eselect
from Gentoo Linux. Daniel Robbins created a new meta-tool to replace eselect because eselect has a couple of design issues. It requires extensions to be written as shell scripts, which is a big limitation. With the advent of Funtoo's modular profile system, eselect profile
was becoming cumbersome to use, and I needed to make the tool faster and more feature-rich. Ultimately, shell scripts are too slow and too hard to use to implement advanced functionality.
ego
is a meta-tool that works similarly to eselect. Typing ego
will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example, epro
is a shortcut for ego profile
. Please see the Funtoo Profiles page for detailed documentation on ego profile
.
Ego Modules
type | sub-command | description |
profile | epro | Profile management -- see Funtoo Profiles for usage information |
doc | edoc | Display wiki documentation |
query | - | Query information about packages |
sync | - | Synchronize Portage tree |
Query module
ego query
module is a tool to display information about packages. Bellow are described the various available commands.
Versions
The versions
(shortcut: v
) command lists all available versions matching a given atom. For each version, it also shows its slot and repository (along with git branch if any).
user $ ego query versions python dev-lang/python| slot| repo ----------------+---------+--------------------- 2.7.12| 2.7| python-kit/3.6-prime * 2.7.13| | python-kit/3.6-prime ----------------+---------+--------------------- 3.4.5| 3.4/3.4m| python-kit/3.6-prime 3.4.6| | python-kit/3.6-prime ----------------+---------+--------------------- * 3.5.3| 3.5/3.5m| python-kit/3.6-prime ----------------+---------+--------------------- * 3.6.1-r1| 3.6/3.6m| python-kit/3.6-prime user $ ego query versions '=python-3*' dev-lang/python| slot| repo ----------------+---------+--------------------- 3.4.5| 3.4/3.4m| python-kit/3.6-prime 3.4.6| | python-kit/3.6-prime ----------------+---------+--------------------- * 3.5.3| 3.5/3.5m| python-kit/3.6-prime ----------------+---------+--------------------- * 3.6.1-r1| 3.6/3.6m| python-kit/3.6-prime user $ ego query v dev-lang/python:3.5 dev-lang/python| slot| repo ----------------+---------+--------------------- * 3.5.3| 3.5/3.5m| python-kit/3.6-prime user $ ego query v coffee-script dev-lang/coffee-script| slot| repo -----------------------+-----+--------------- 1.9.3-r1| 0| dev-kit/master * 1.12.5| | dev-kit/master dev-ruby/coffee-script| slot| repo -----------------------+-----+--------------- 2.4.1| 0| dev-kit/master
Installed versions are in bold and marked with a star.
Origin
The origin
(shortcut: o
) command will tell you where a given package comes from and give you the URL to browse the ebuilds. This is mainly a tool for developers designed to figure out where fixes should be applied.
user $ ego query origin dev-python/appi dev-python/appi::python-kit comes from flora https://github.com/funtoo/flora/tree/master/dev-python/appi user $ ego query o screen app-misc/screen::core-kit comes from kit-fixups https://github.com/funtoo/kit-fixups/tree/master/core-kit/global/app-misc/screen https://gitweb.gentoo.org/repo/gentoo.git/tree/app-misc/screen app-vim/screen::editors-kit comes from gentoo-staging http://git.funtoo.org/gentoo-staging/tree/app-vim/screen https://gitweb.gentoo.org/repo/gentoo.git/tree/app-vim/screen
When the package is also available in Gentoo, the URL to the Gentoo repository is also shown in cyan as you may want to compare Funtoo version with Gentoo's.
Bugs
The bugs
command lists bugs reported on https://bugs.funtoo.org/ regarding the given atom. This allows you to quickly find out if an issue you're facing was reported recently.
user $ ego query bugs www-client/chromium root ##r##FL-4233 2017-09-21 Closed Unable to emerge the package 'www-client/chromium' due to a missing dependency root ##r##FL-3019 2015-11-27 Closed Emerge fails to find proper dependencies for www-client/chromium on arm with system-ffmpeg root ##r##FL-444 2013-03-05 Closed www-client/chromium depends on missing >=media-libs/mesa-9.1 user $ ego query bugs mesa root ##r##FL-3269 2016-07-19 Backlog media-libs/mesa need video_cards_virgl use flag. root ##r##FL-2225 2015-03-29 Closed [media-libs/mesa] upgrading to 10.4.4 failed root ##r##FL-2224 2015-03-29 Closed [media-libs/mesa] bump new 10.4.4 version to 10.4.7 root ##r##FL-634 2013-07-22 Closed portage complaining that media-libs/mesa and x11-libs/cairo need openvg flag