User:Anathonous/UnderstandingGentoo

From Gentoo Wiki
Jump to:navigation Jump to:search

Understanding Gentoo

Foot in the door

Welcome to Gentoo Linux. You either decided to look into the Distro or are in the progress of installing it, or are a seasoned Larry. Please create accounts on the Forums, Wiki, Bug Ticketing system, and sign up for a Freenode account if you haven't already. You can also view a list of all available packages here. Using the tools available to you is half the battle. Don't be conquered. Gentoo is definitely a learning experience but with obstacles you will attain greater knowledge of the Gentoo, Linux, and Operating Systems in general.

It's not that hard

Pay attention to detail

Portage
USE

Portage will be one of the first obstacles you are faced with. It's not that it's hard to use. You just really have to dive deep into understanding it's concepts. It's kind of like being a first year University student. You have to have the desire to learn and get your system up and running the way you want it otherwise it's not going to happen.

As you are here. You most likely have taken a glance at the Handbook for your Architecture of choice. If not, You are in for a treat. Eventually you will come to the part where you are going to build @World for your base.

root #emerge --ask --verbose --update --deep --newuse @world

Your base will install with default flags, You can rebuild later if you wish or you can take a glance at your USE flags now. This is where things get interesting. There is several ways to look at this issue. The handbook recommends using /etc/portage/make.conf after taking a look at your world USE flags with "emerge --info | grep ^USE". It obfuscates things a bit. You either have or need to create the directory /etc/portage/package.use/ Create a file called "world" and within it paste all of your USE flags after you do your first emerge. Global flags and your first Emerge are separate but similar. It will give you a list of packages and flags then ask if you would like to merge them. Generally you want to choose No at first. Copy the list and create a file within the /etc/portage/package.use/ folder. Say I was about to install Spotify. It will output a list of package dependencies each with their own USE flags. What you are trying to do is negate portage from constantly asking you about USE flags. At first it appears to be a minor inconvenience but in retrospect you are getting a completely customized system optimized personally for your architecture and needs.

user $sudo emerge --ask media-sound/spotify
These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild N ] dev-util/patchelf-0.12

[ebuild N ] media-sound/spotify-1.1.42 USE="libnotify pulseaudio (-libressl) -pax_kernel -systray"

Would you like to merge these packages? [Yes/No]

So you would create /etc/portage/package.use/spotify and edit to resemble something like this.

CODE /etc/portage/package.use/spotify
dev-util/patchelf
media-sound/spotify libnotify pulseaudio systray

You disable the version bits and enable the USE flags you want. Here I have used the standard flags and enabled the systray USE flag. Now every time you update your system. Portage won't ask you about USE flags or conflicts. Hopefully.

ACCEPT_KEYWORDS

Sometimes portage will bring to your attention certain applications not having acceptable keywords. Sometimes this has to do with packages being upstream and not available in the version of portage you are using aka stable. Make sure to keep emerge --sync'd to current availability. Rather then completely upgrading your system unintentionally to an upstream channel you will want to do this on a per package basis. If something has a tidle ~ next to it. Such as ~amd64 it means it is an upstream package for the amd64 architecture. You may want to install the latest and greatest of a package and not want to upgrade your entire system to unstable software. The same applies to Keywords.

CODE /etc/portage/packages.accept_keywords/someapp
media-video/someapp ~amd64

This would enable the keyword for that package only and maybe a dependency if it needed it. Leave the version bits out like you did for the USE flags and it will update with upstream when you update the rest of your system. Just beware, It's upstream software.

Ebuilds
Repositories
Patches

It's time consuming

It takes time. Time to learn. Time to grow. Time to get the hang of things. If you are doing a base install for the first time. You are going to want to install all of your software and get all of your hardware working as well. This involves rebuilding world, Installing software. Recompiling your kernel. Breaking things. Fixing things. Learning. Lots of rebooting. It's going to take a lot of time. Know that coming into it. Your computer is going to be chugging away like the legend that it is, compiling things. Thanks for sticking around.