/etc/portage/make.profile is not a symlink and will probably prevent most merges.

This is a wiki page. Be bold and improve it!

If you have any questions about the content on this page, don't hesitate to open a new ticket and we'll do our best to assist you.

Error

Sample error message:

!!! /etc/portage/make.profile is not a symlink and will probably prevent most merges.
!!! It should point into a profile within /mnt/old.kubuntu/scratch/portage/profiles/
!!! (You can safely ignore this message when syncing. It's harmless.)


!!! Your current profile is invalid. If you have just changed your profile
!!! configuration, you should revert back to the previous configuration.
!!! Allowed actions are limited to --help, --info, --search, --sync, and
!!! --version.

Solutions

Select profile

See the output of:

# eselect profile list

You should see a list of profiles. Sometimes the old profile that you were using has been deprecated. In this case, check the news and select a new, appropriate profile.

If the output of the above command is empty, then check the solution below.

sync

Maybe your local portage tree is out of sync.
Do:

emerge --sync

If necessary, check a different mirror:
https://www.gentoo.org/support/rsync-mirrors/

Wait

A problem may have occurred upstream. Wait a couple of days and then sync again.

Empty profiles

Symptom #1: the following command returns an empty list of profile: there are none to be selected.

# eselect profile list

Symptom #2: the following listing returns zero files:

# ls /usr/portage/profiles/

The above path is the default. The actual path depends on a setting in /etc/portage/repos.conf or /etc/portage/repos.conf/gentoo.conf, with the corresponding line:
[gentoo]
location = /usr/portage

Symptom #3: the following directory exists and is not empty:

# ls /usr/portage/.tmp-unverified-download-quarantine

This indicates that emerge --sync failed, because some packages failed to be verified.

A temporary solution would be to add the following setting to repos.conf:

sync-rsync-verify-metamanifest = no

And then do again:
emerge --sync

The solution above is only for emergency situations, because manifest verifications are performed for a reason.

See also

https://linux.overshoot.tv/etc/portage/make.profile