注意:

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Difference between revisions of "FAQ/Old"

From Funtoo
< FAQ
Jump to navigation Jump to search
m (Drobbins moved page Funtoo Linux FAQ to FAQ/Old without leaving a redirect: Replacing with Cargo-based FAQ)
 
(24 intermediate revisions by the same user not shown)
Line 8: Line 8:


But if you ''do'' appreciate a deeper connection to technology, and pushing technology to its limits, Funtoo Linux may be a life-changing experience for you.
But if you ''do'' appreciate a deeper connection to technology, and pushing technology to its limits, Funtoo Linux may be a life-changing experience for you.
=== How did Funtoo Linux Begin? ===
Funtoo Linux was created by Daniel Robbins, the creator and former Chief Architect of Gentoo Linux, in late 2007, as a means to get Gentoo to build reliably (see [[Funtoo Linux History]] for an accurate timeline.) This led to the adoption of [[Metro]], an automated build tool also developed by Daniel, to replace Gentoo's catalyst build tool for building Funtoo stages.
Some changes to Gentoo's Portage tree were needed to produce reliable stage3 builds of Gentoo, creating the need for Daniel to create a slight variant of Gentoo's Portage tree to support automated builds. This in turn created the need to maintain a forked Portage tree that also integrated recent upstream Gentoo changes. Daniel adopted git and worked with Zac Medico to integrate support for git-based Portage trees and mini-manifests into Gentoo's {{c|emerge}} command at a time when adoption of git by Gentoo had stalled.
Over time, Funtoo Linux has continued to mature, supporting novel offerings such as {{c|debian-sources}} and {{c|debian-sources-lts}} kernels, [[Funtoo Profiles|multiple system profiles]],  a wide selection of stages [[Download|optimized for modern CPUs]], support for systemd-less [[GNOME First Steps|GNOME]], and our new kits system.
=== Is Funtoo Linux a fork of Gentoo Linux? ===
Funtoo Linux is not a full fork of Gentoo Linux, but we do fork some ebuilds.
It's more accurate to refer to Funtoo Linux as a Gentoo Linux variant, meaning that it is more like another flavor of Gentoo than a fork.
We do try to collaborate with Gentoo developers when possible.


=== Do you support systemd? ===
=== Do you support systemd? ===
Line 16: Line 32:


We are planning to develop a new OpenRC-style init system, incorporating "next-gen" features, which will be comparable in functionality to systemd.
We are planning to develop a new OpenRC-style init system, incorporating "next-gen" features, which will be comparable in functionality to systemd.
=== What Architectures does Funtoo Linux support? ===
Currently, Funtoo Linux is supports x86-32bit, x86-64bit, including pure64 (non-multilib), as well as ARM 32 and 64-bit.
=== Do you use the normal Gentoo system profiles? ===
Funtoo Linux uses a novel multi-profile system which you can read about at [[Funtoo Profiles]]. It has a lot of cool functionality, including ''flavors'', ''mix-ins'' and other cool things.


=== Do you have a logo? ===
=== Do you have a logo? ===
Line 27: Line 51:
=== Does Funtoo use an overlay? ===
=== Does Funtoo use an overlay? ===


An overlay is a Portage tree that is added "on top of" an existing Portage tree. Funtoo Linux allows you to use overlays, and we use overlays for development, but we deliver a single Funtoo Portage tree via git. This tree is generated automatically from the Gentoo Portage tree and a number of other overlays, and merged into a single tree. This is the tree that you get when you run <tt>emerge --sync</tt>. More information is available on the [[How to Dev|How to 'Dev' page]].
Funtoo Linux uses a system called kits, which organizes the Portage tree into logical groupings, such as xorg-kit, gnome-kit, etc. Kits are essentially overlays that are specially designed to work together.


=== How do I see what overlay a particular ebuild comes from? ===
=== How do I see what overlay a particular ebuild comes from? ===
Line 35: Line 59:
=== Does Funtoo Linux use a Red Hat or Debian kernel? ===
=== Does Funtoo Linux use a Red Hat or Debian kernel? ===


Funtoo Linux users are free to choose their own kernel, and we offer additional kernels from other Linux distributions such as Debian, Red Hat Enterprise Linux and others. These are documented on the [[Funtoo Linux Kernels]] page.
We include a pre-built {{c|debian-sources}} kernel and initramfs in stage3 tarballs by default which is ready for use and offers universal hardware support, and also offer up-to-date {{c|debian-sources-lts}} kernels in our Portage tree. Funtoo Linux users are free to choose their own kernel. These are documented on the [[Funtoo Linux Kernels]] page.


=== What is the License of the content on the wiki? ===
=== What is the License of the content on the wiki? ===
Line 49: Line 73:
=== Is it possible to convert an existing Gentoo Linux install to Funtoo Linux? ===
=== Is it possible to convert an existing Gentoo Linux install to Funtoo Linux? ===


Yes, it is possible, but not supported. Some people have done it, but you should not rely on it to always work. It is always best to install Funtoo Linux by following the steps in [[Funtoo Linux Installation]].
Yes, it is possible, but not supported. Some people have done it, but you should not rely on it to always work. It is always best to install Funtoo Linux by following the steps in [[Funtoo Linux Installation]]. If you proceed to convert an existing Gentoo system to Funtoo, be aware that it may not work, and we will not officially support you if you get stuck, so you may have to install from scratch anyway. However, there are people on the forums or on IRC who might be willing to help you out.


=== What is mini-manifest? ===
=== What is mini-manifest? ===
Manifests are files that you will find inside a Portage tree on a Gentoo Linux or Funtoo Linux system, one associated with each package -- for example <tt>dev-lang/php</tt> will have a single Manifest file for all PHP ebuilds. Traditionally, the Manifest files contain cryptographic hashes of all files in the Portage tree, plus hashes of all downloadable files (distfiles) used to build the package.


A feature introduced by Funtoo Linux, and now integrated upstream into Gentoo's Portage, are mini-Manifests. Because we use git for our Portage tree, which uses cryptographic hashes internally, we don't need Manifests to include hashes for all files ''in'' Portage, just files that need to be downloaded from mirrors. This is what mini-Manifests are -- Manifest files that have gone on a diet.
A feature introduced by Funtoo Linux, and now integrated upstream into Gentoo's Portage, are mini-Manifests. Because we use git for our Portage tree, which uses cryptographic hashes internally, we don't need Manifests to include hashes for all files ''in'' Portage, just files that need to be downloaded from mirrors. This is what mini-Manifests are -- Manifest files that have gone on a diet.
Line 66: Line 88:


Ego will use the <tt>git pull</tt> command to update your tree for you, or will use <tt>git clone</tt> if one doesn't exist.
Ego will use the <tt>git pull</tt> command to update your tree for you, or will use <tt>git clone</tt> if one doesn't exist.
=== I set up my initial git-based Portage tree, but <tt>/usr/portage</tt> seems to be empty. ===
You forgot to type:
<console>
###i## cd /usr/portage
###i## git checkout funtoo.org
</console>
Funtoo Linux's portage tree snapshot ships with a mostly empty branch active by default to reduce the size of the resultant snapshot tarball.


=== What is the status of Funtoo's UTF-8 support? ===
=== What is the status of Funtoo's UTF-8 support? ===
Line 92: Line 104:
</pre>
</pre>
You will need to run <tt>env-update</tt> and <tt>source /etc/profile</tt> to apply changes immediately to any open shells, and reboot to apply changes fully.
You will need to run <tt>env-update</tt> and <tt>source /etc/profile</tt> to apply changes immediately to any open shells, and reboot to apply changes fully.
=== What is different with Funtoo's Ruby? ===
Funtoo Linux tracks Gentoo's Ruby, but we do have one change for ruby-1.9 and greater - the binary name is changed with /usr/bin/ruby1.9 instead of Gentoo's /usr/bin/ruby19. This makes the versioning consistent with Python binaries and MacOS X. This means that for ruby-1.9 and greater. While the path to the binary has changed, all Portage variables are the same as Gentoo, so you should use &quot;ruby19&quot; for the <tt>RUBY_TARGETS</tt> setting in <tt>/etc/make.conf</tt>.
=== Does Funtoo Linux use an older udev? ===
Historically, we have, in order to avoid problems introduced with newer udev versions.
We have just recently migrated to <tt>eudev</tt>, an udev fork, and will be keeping udev up-to-date.
=== What is the minimum kernel version I can use with Funtoo Linux? ===
We test and support 2.6.32 and above, and maintain compatiblity with RHEL 6 kernels, which are based on 2.6.32 and heavily patched.


=== Why is package.mask a directory? ===
=== Why is package.mask a directory? ===


Portage allows <tt>/usr/portage/profiles/package.mask</tt> to be a directory. We use this to organize our package masks into categories so they are easier to maintain.
Portage allows <tt>/usr/portage/profiles/package.mask</tt> to be a directory. We use this to organize our package masks into categories so they are easier to maintain.
=== Git complains and aborts when I emerge --sync. ===
It appears that a previous git merge was interrupted or did not complete, leaving your portage tree in an intermediate state. Typically, this can be fixed by typing:
<console>
###i## cd /usr/portage
###i## git reset --hard
</console>
This should restore your portage tree to a consistent state and allow future <tt>emerge --sync</tt> commands to complete successfully.
If this doesn't work, the simplest way to fix this is to delete your <tt>/usr/portage</tt> directory and run <tt>emerge --sync</tt> again. This will download a fresh tree.


=== How do I tell if a problem I am having originates from Gentoo or Funtoo? ===
=== How do I tell if a problem I am having originates from Gentoo or Funtoo? ===


Let us figure this out for you. Report a bug to our bug tracker, and we will determine how to resolve the issue. See [[Reporting Bugs]].
Let us figure this out for you. Report a bug to our bug tracker, and we will determine how to resolve the issue. See [[Reporting Bugs]].
=== How can I see the differences between the Gentoo and Funtoo Portage trees? ===
In the old days, this was tricky. We do not have a comprehensive way to do this, but here are some things to start looking at:
* See the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay] for our main repository of Funtoo-specific stuff -- this is our main Funtoo package repository, but not our only one.
* To get a full view of everything, see [http://git.funtoo.org/funtoo-overlay/tree/funtoo/scripts/merge.py our merge script] which generates our unified <tt>emerge --sync</tt>able tree. This describes everything that is part of Funtoo Linux.
* We have an automated report which is visible at [[Compare Forked Packages To Gentoo]]. This report is designed for Funtoo developers, and lists only the "bad" stuff -- areas in which our packages are older than what is in Gentoo Linux. We use this report to identify ebuilds that need to be updated in Funtoo Linux.
=== Is Paludis compatible with the Funtoo Portage tree? ===
Paludis does not appear to be compatible with the Funtoo Portage tree, unfortunately. It does not support the <tt>package.mask</tt> directory without additional hooks, and also does not support merging device nodes. These features are supported by Portage and we use both of these capabilities. I think that both <tt>package.mask</tt> (and <tt>package.keywords</tt>, etc.) directories are a good idea, and I also think it's a good idea for the package manager to support device nodes, which is particularly useful for the <tt>udev</tt> and <tt>baselayout</tt> ebuilds. Funtoo Linux has separate versions of these packages, and these ebuilds are easier to maintain if device nodes are correctly supported by the package manger, and the <tt>package.mask</tt> directory is a great help to us as well.
We could maintain a patched version of Paludis that would be useable with the Funtoo Portage tree, but I don't want to get into the business of supporting a non-standard package manager as the upstream project seems not seem very supportive of getting these compatibility issues resolved, and thus this could turn into a maintenance burden for Funtoo. So I'd rather just not support Paludis for now.
=== What about pkgcore? ===
Pkgcore is not currently compatible with Funtoo Linux and this isn't something we test.


=== How do I report a bug? ===
=== How do I report a bug? ===
Line 156: Line 124:


== General Funtoo Stuff ==
== General Funtoo Stuff ==
=== What can you tell me about Funtoo Linux history? ===
Funtoo Linux was created by Daniel Robbins, the creator and former Chief Architect of Gentoo Linux, in late 2007, as a means to get Gentoo to build reliably (see [[Funtoo Linux History]] for an accurate timeline.) This led to the adoption of [[Metro]], an automated build tool developed by Daniel, to replace Gentoo's catalyst build tool for building Funtoo stages. Some changes to Gentoo's Portage tree were needed to produce reliable stage3 builds of Gentoo, creating the need for Daniel to create a slight variant of Gentoo's Portage tree to support automated builds. This in turn created the need to maintain a forked Portage tree that also integrated recent upstream Gentoo changes. Daniel adopted git and worked with Zac Medico to integrate support for git-based Portage trees and mini-manifests into Gentoo's <tt>emerge</tt> command. Over time, Funtoo Linux has continued to grow into a modern Gentoo Linux variant, supporting novel offerings such as [[Funtoo Linux Kernels|support for RHEL and Debian kernels]], [[OpenVZ]] support, [[Funtoo Profiles|multiple system profiles]],  a wide selection of stages [[Download|optimized for modern CPUs]], support for systemd-less [[GNOME First Steps|GNOME]], and more. Initially, upstream Gentoo changes were merged into Funtoo's git-based Portage tree by hand; this process is now fully automated via the use of advanced merge scripts that run every 12 hours.
=== How big is the Funtoo Linux Dev Team? ===
Two people. The Funtoo Linux development team consists of Daniel Robbins and Oleg Vinichenko. Oleg handles day-to-day maintenance and fixes, and supports users. All other tasks are automated.
=== What is 'Funtoo' all about? And 'Funtoo Linux'? ===
<tt>Funtoo</tt> by itself refers to this site, or the larger <tt>Funtoo</tt> project run by Daniel Robbins. That's just a fancy way of saying that <tt>Funtoo</tt> refers to all the stuff I'm doing.
''Funtoo Linux'' refers specifically to my variant of Gentoo Linux.
If you see me use the phrase <tt>Funtoo Portage tree</tt> or <tt>Funtoo ebuild</tt>, I'm just talking about our separate (and slightly different) Portage tree, or our version of an ebuild.
=== What is 'tnufoo'? ===
<tt>tnufoo</tt> is <tt>funtoo</tt> rotated 180 degrees vertically.
=== Is Funtoo Linux a fork of Gentoo Linux? ===
Funtoo Linux is not a full fork of Gentoo Linux, but we do fork some ebuilds.
It's more accurate to refer to Funtoo Linux as a <tt>Gentoo Linux variant</tt>, meaning that it is more like another flavor of Gentoo than a fork.
We share our changes and bug fixes with the Gentoo project, so Gentoo is free to merge in any of our changes at any time.


=== What is the best way to interact with the Funtoo community? ===
=== What is the best way to interact with the Funtoo community? ===


There is a list of resources on our [[Welcome]] page that is kept up-to-date.
There is a list of resources on our [[Welcome]] page that is kept up-to-date.
=== What Architectures does Funtoo Linux support? ===
Currently, Funtoo Linux is supporting x86-32bit, x86-64bit, including pure64 (non-multilib), as well as ARM. There has been a Sparc64 build in the past, which could always come back in the future if others come forward to maintain it.
=== Do you use the normal Gentoo system profiles? ===
I designed a new profile system for Funtoo which you can read about at [[Funtoo 1.0 Profile]]. It has a lot of cool functionality, including ''flavors'', ''mix-ins'' and other cool things. Thanks to Ryan Harris (rh1) for the excellent Funtoo <tt>eselect</tt> implementation for our new profile system.


=== Is Funtoo Linux More Stable Than Gentoo Linux? ===
=== Is Funtoo Linux More Stable Than Gentoo Linux? ===
Line 206: Line 138:


== Forking the Portage Tree ==
== Forking the Portage Tree ==
=== I want to fork the Portage tree. How do I do this? ===
Currently, the best way to do it involves forking the [http://www.github.com/funtoo/funtoo-overlay funtoo-overlay], which is much smaller, or creating your own overlay. I have scripts that combine the Funtoo overlay and the Gentoo tree to create a unified Portage tree.


=== Where can I learn more about <tt>git</tt>? ===
=== Where can I learn more about <tt>git</tt>? ===

Latest revision as of 20:19, November 21, 2018

Top Questions

Why use a Source-Based Linux Distribution like Funtoo Linux?

Using a source-based Linux distribution like Funtoo Linux could be likened to driving an exotic sports car. It's an experience that is appreciated by professionals and technology enthusiasts because it simply offers a more direct, engaging experience with the underlying technology. You can push the technology further. You have more control. It is more satisfying.

If you aren't looking for something "special", there are a number of binary-only Linux distributions to choose from. They will get you from point A to point B. You won't have as much fun or be as connected to what's going on, nor as much control, but maybe that's not what you're looking for.

But if you do appreciate a deeper connection to technology, and pushing technology to its limits, Funtoo Linux may be a life-changing experience for you.

How did Funtoo Linux Begin?

Funtoo Linux was created by Daniel Robbins, the creator and former Chief Architect of Gentoo Linux, in late 2007, as a means to get Gentoo to build reliably (see Funtoo Linux History for an accurate timeline.) This led to the adoption of Metro, an automated build tool also developed by Daniel, to replace Gentoo's catalyst build tool for building Funtoo stages.

Some changes to Gentoo's Portage tree were needed to produce reliable stage3 builds of Gentoo, creating the need for Daniel to create a slight variant of Gentoo's Portage tree to support automated builds. This in turn created the need to maintain a forked Portage tree that also integrated recent upstream Gentoo changes. Daniel adopted git and worked with Zac Medico to integrate support for git-based Portage trees and mini-manifests into Gentoo's emerge command at a time when adoption of git by Gentoo had stalled.

Over time, Funtoo Linux has continued to mature, supporting novel offerings such as debian-sources and debian-sources-lts kernels, multiple system profiles, a wide selection of stages optimized for modern CPUs, support for systemd-less GNOME, and our new kits system.

Is Funtoo Linux a fork of Gentoo Linux?

Funtoo Linux is not a full fork of Gentoo Linux, but we do fork some ebuilds.

It's more accurate to refer to Funtoo Linux as a Gentoo Linux variant, meaning that it is more like another flavor of Gentoo than a fork.

We do try to collaborate with Gentoo developers when possible.

Do you support systemd?

Part of the distinctiveness of Funtoo Linux is its dependency-based OpenRC init system, so changing this would make it something other than Funtoo Linux. So we do not support systemd as part of Funtoo Linux.

Thanks to the work of Dantrell B. and others, we do, however, fully support running GNOME 3.26 without depending on systemd.

We are planning to develop a new OpenRC-style init system, incorporating "next-gen" features, which will be comparable in functionality to systemd.

What Architectures does Funtoo Linux support?

Currently, Funtoo Linux is supports x86-32bit, x86-64bit, including pure64 (non-multilib), as well as ARM 32 and 64-bit.

Do you use the normal Gentoo system profiles?

Funtoo Linux uses a novel multi-profile system which you can read about at Funtoo Profiles. It has a lot of cool functionality, including flavors, mix-ins and other cool things.

Do you have a logo?

We're currently looking for a new logo. I change it periodically and include a question mark to encourage people to submit ideas. You can post ideas to the forums.

Do you use GitHub?

Funtoo Linux uses GitHub, so all our public repositories are available on GitHub. We also accept pull requests from GitHub. See Contributing for more information.

Does Funtoo use an overlay?

Funtoo Linux uses a system called kits, which organizes the Portage tree into logical groupings, such as xorg-kit, gnome-kit, etc. Kits are essentially overlays that are specially designed to work together.

How do I see what overlay a particular ebuild comes from?

http://ports.funtoo.org/packages.xml lists all ebuilds that come from a non-Gentoo overlay, in XML format. You can search this file for the ebuild you are interested in. If you don't find it, then it came from Gentoo.

Does Funtoo Linux use a Red Hat or Debian kernel?

We include a pre-built debian-sources kernel and initramfs in stage3 tarballs by default which is ready for use and offers universal hardware support, and also offer up-to-date debian-sources-lts kernels in our Portage tree. Funtoo Linux users are free to choose their own kernel. These are documented on the Funtoo Linux Kernels page.

What is the License of the content on the wiki?

Unless otherwise noted, the license of the content on the wiki is available for your use under the terms of -- at your option -- the GNU Free Documentation License 1.3, or the Creative Commons CC-BY-SA, 3.0.

Using Funtoo Linux, Portage and Git

How do I start using Funtoo Linux?

For information on how to start using Funtoo Linux, see Funtoo Linux Installation.

Is it possible to convert an existing Gentoo Linux install to Funtoo Linux?

Yes, it is possible, but not supported. Some people have done it, but you should not rely on it to always work. It is always best to install Funtoo Linux by following the steps in Funtoo Linux Installation. If you proceed to convert an existing Gentoo system to Funtoo, be aware that it may not work, and we will not officially support you if you get stuck, so you may have to install from scratch anyway. However, there are people on the forums or on IRC who might be willing to help you out.

What is mini-manifest?

A feature introduced by Funtoo Linux, and now integrated upstream into Gentoo's Portage, are mini-Manifests. Because we use git for our Portage tree, which uses cryptographic hashes internally, we don't need Manifests to include hashes for all files in Portage, just files that need to be downloaded from mirrors. This is what mini-Manifests are -- Manifest files that have gone on a diet.

How do I get my initial Portage tree, or update my Portage tree?

This is done by typing:

root # ego sync

Ego will use the git pull command to update your tree for you, or will use git clone if one doesn't exist.

What is the status of Funtoo's UTF-8 support?

Funtoo Linux has UTF-8 enabled by default, even for the root user. This allows UTF-8 files to be edited without issue, root GNU screen sessions to display UTF-8 character sets properly, etc. The classic sort order of ls -a has been preserved by setting LC_COLLATE to POSIX. All other locale settings inherit the system default defined in the LANG variable, which is set to en_US.UTF-8.

What if I want to use a non-English locale/language?

I recommend two things. First, it's strongly recommended that you always use a UTF-8-based locale.

The next thing I recommend is to try to avoid changing the global system LANG setting, and instead set the LANG setting on a per-user basis by adding the desired LANG setting to your ~/.bashrc. This will preserve English log output in /var/log and make it easier to search for more common matching English strings on the Internet when you need help.

If you really want to change the default system LANG setting (taking into account the paragraph above,) then it's recommended that you create your own /etc/env.d/02locale file that contains something like this:

LANG="fr_CA.UTF-8"

You will need to run env-update and source /etc/profile to apply changes immediately to any open shells, and reboot to apply changes fully.

Why is package.mask a directory?

Portage allows /usr/portage/profiles/package.mask to be a directory. We use this to organize our package masks into categories so they are easier to maintain.

How do I tell if a problem I am having originates from Gentoo or Funtoo?

Let us figure this out for you. Report a bug to our bug tracker, and we will determine how to resolve the issue. See Reporting Bugs.

How do I report a bug?

We have a bug tracker. See Reporting Bugs.

How do I become a Funtoo developer?

First, we want you to be a Funtoo Linux user. Funtoo Linux is a project run by users.

Then, see Contributing.

General Funtoo Stuff

What is the best way to interact with the Funtoo community?

There is a list of resources on our Welcome page that is kept up-to-date.

Is Funtoo Linux More Stable Than Gentoo Linux?

The short answer is that we don't know, but some people think it is, and we strive to make it more reliable than Gentoo, not because we're competitive, but because Funtoo Linux originally started as a version of Gentoo Linux that had several bugs fixed. We like to fix things that we find that aren't working.

Do you use Gentoo's Guide XML for Documentation?

I've made the decision to go with MediaWiki as our official documentation format.

Forking the Portage Tree

Where can I learn more about git?

So, you want to learn more about git, do you? A collection of excellent git resources is now available on the Git Guide.

Where can I learn more about the Funtoo Linux philosophy -- what you are about?

See Funtoo Linux Vision.