Difference between revisions of "Emerge"

From Funtoo
Jump to navigation Jump to search
Line 4: Line 4:
=== Update Package Database ===
=== Update Package Database ===
'''Sync meta-repo. This will update your local Portage tree with the latest Funtoo ebuilds.'''
'''Sync meta-repo. This will update your local Portage tree with the latest Funtoo ebuilds.'''
<console>
{{console|body=
###i## ego sync
###i## ego sync
</console>
}}


=== Search packages ===
=== Search packages ===
'''Search packages by name.'''
'''Search packages by name.'''
<console>
{{console|body=
###i## emerge -s firefox
###i## emerge -s firefox
###i## emerge --search firefox
###i## emerge --search firefox
</console>
}}


'''Search packages by description.'''
'''Search packages by description.'''
<console>
{{console|body=
###i## emerge -S web browser
###i## emerge -S web browser
###i## emerge --searchdesc web browser
###i## emerge --searchdesc web browser
</console>
}}


=== Install packages ===
=== Install packages ===
'''Install package.'''
'''Install package.'''
<console>
{{console|body=
###i## emerge firefox
###i## emerge firefox
</console>
}}


'''Install multiple packages.'''
'''Install multiple packages.'''
<console>
{{console|body=
###i## emerge firefox thunderbird
###i## emerge firefox thunderbird
</console>
}}


'''Install package. Ask for confirmation before performing any changes. Show verbose output.'''
'''Install package. Ask for confirmation before performing any changes. Show verbose output.'''
<console>
{{console|body=
###i## emerge -av firefox
###i## emerge -av firefox
###i## emerge --ask firefox
###i## emerge --ask firefox
</console>
}}


=== Remove packages ===
=== Remove packages ===
'''Remove package.'''
'''Remove package.'''
<console>
{{console|body=
###i## emerge -C firefox
###i## emerge -C firefox
###i## emerge --unmerge firefox
###i## emerge --unmerge firefox
</console>
}}


'''Remove package. Ask for confirmation before performing any changes.'''
'''Remove package. Ask for confirmation before performing any changes.'''
<console>
{{console|body=
###i## emerge -aC firefox
###i## emerge -aC firefox
</console>
}}


'''Remove orphaned packages. Ask for confirmation before performing any changes.'''
'''Remove orphaned packages. Ask for confirmation before performing any changes.'''
<console>
{{console|body=
###i## emerge -a --depclean
###i## emerge -a --depclean
</console>
}}


=== Update packages ===
=== Update packages ===
'''Update all packages.'''
'''Update all packages.'''
<console>
{{console|body=
###i## emerge -uDN @world
###i## emerge -uDN @world
</console>
}}


'''Update all packages. Ask for confirmation before performing any changes. Show verbose output.'''
'''Update all packages. Ask for confirmation before performing any changes. Show verbose output.'''
<console>
{{console|body=
###i## emerge -uavDN @world
###i## emerge -uavDN @world
</console>
}}


'''When upgrading to a new version of perl, it is necessary to also run <code>perl-cleaner</code> afterwards:'''
'''When upgrading to a new version of perl, it is necessary to also run <code>perl-cleaner</code> afterwards:'''
<console>
{{console|body=
###i## emerge -auvDN @world
###i## emerge -auvDN @world
###i## perl-cleaner --all
###i## perl-cleaner --all
</console>
}}


{{Note|This requirement of running <code>perl-cleaner</code> will eventually go away, once all perl-related ebuilds are updated to EAPI 5. EAPI 5 is a version of the Ebuild specification that supports smart updating of perl-related bits.}}
{{Note|This requirement of running <code>perl-cleaner</code> will eventually go away, once all perl-related ebuilds are updated to EAPI 5. EAPI 5 is a version of the Ebuild specification that supports smart updating of perl-related bits.}}
Line 156: Line 156:
== Other Resources ==
== Other Resources ==
For more info see the emerge man page.
For more info see the emerge man page.
<console>
{{console|body=
$##i## man emerge
$##i## man emerge
</console>
}}


[[Category:Portage]]
[[Category:Portage]]

Revision as of 04:41, April 14, 2019

Getting started with emerge

Emerge is the front-end for funtoo's Portage package manager. With emerge it is easy to install, update or remove packages.

Update Package Database

Sync meta-repo. This will update your local Portage tree with the latest Funtoo ebuilds.

root # ego sync

Search packages

Search packages by name.

root # emerge -s firefox
root # emerge --search firefox

Search packages by description.

root # emerge -S web browser
root # emerge --searchdesc web browser

Install packages

Install package.

root # emerge firefox

Install multiple packages.

root # emerge firefox thunderbird

Install package. Ask for confirmation before performing any changes. Show verbose output.

root # emerge -av firefox
root # emerge --ask firefox

Remove packages

Remove package.

root # emerge -C firefox
root # emerge --unmerge firefox

Remove package. Ask for confirmation before performing any changes.

root # emerge -aC firefox

Remove orphaned packages. Ask for confirmation before performing any changes.

root # emerge -a --depclean

Update packages

Update all packages.

root # emerge -uDN @world

Update all packages. Ask for confirmation before performing any changes. Show verbose output.

root # emerge -uavDN @world

When upgrading to a new version of perl, it is necessary to also run perl-cleaner afterwards:

root # emerge -auvDN @world
root # perl-cleaner --all
   Note

This requirement of running perl-cleaner will eventually go away, once all perl-related ebuilds are updated to EAPI 5. EAPI 5 is a version of the Ebuild specification that supports smart updating of perl-related bits.

Emerge options

--sync
Updates the portage tree that is located in /usr/portage by default.
--search -s
Searches for matches of the supplied string in the portage tree.
--searchdesc -S
Matches the search string against the description field as well as the package name.
--ask -a
Ask for confirmation before performing any changes.
--pretend -p
Instead of actually performing the merge, simply display what *would* have been installed if --pretend weren't used.
--unmerge -C
Removes all matching packages.
--update -u
Updates packages to the best version available, which may not always be the highest version number due to masking for testing and development.
--deep [DEPTH] -D
force emerge to consider the entire dependency tree of packages, instead of checking only the immediate dependencies of the packages.
--newuse -N
Tells emerge to include installed packages where USE flags have changed since compilation.
--depclean -c
Remove orphaned packages. Cleans the system by removing packages that are not associated with explicitly merged packages.
--autounmask-write
Automatically write package.use settings as necessary to satisfy dependencies.
--resume -r
Resumes the most recent merge list that has been aborted due to an error.
--jobs[=JOBS] -j [JOBS]
Specifies the number of packages to build simultaneously.
--load-average [LOAD]
Specifies that no new builds should be started if there are other builds running and the load average is at least LOAD (a floating-point number).

Configuration

make.conf

Emerge can be configured by editing

   /etc/portage/make.conf - See Make.conf
CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="-march=native -O2 -pipe"

MAKEOPTS="-j2"
EMERGE_DEFAULT_OPTS="--jobs 2 --load-average 2"
INPUT_DEVICES="evdev synaptics"
VIDEO_CARDS="intel i965"
LINGUAS="en en_US en_GB"
ACCEPT_LICENSE="*"

USE="mmx mmxext sse sse2 sse3 ssse3 threads alsa X gtk xcb dri opengl vaapi udev \
     svg x264 xvid gstreamer webm vpx icu bash-completion vim-pager \
     -gnome -xscreensaver -cups -fortran -deprecated -iptables -ipv6 -geoloc \
     -mta -sendmail -kmod -tiff -live -quicktime -real -gpm -themes"

Package.use

Per-package use flags can be configured in

   /etc/portage/package.use
x11-wm/dwm savedconfig
x11-drivers/ati-drivers qt4
media-sound/ncmpcpp visualizer clock taglib

package.accept_keywords

If you want to install a package that has not been tested on your architecture you need to edit

   /etc/portage/package.accept_keywords
=app-misc/screenfetch-9999 **

Other Resources

For more info see the emerge man page.

user $ man emerge