You may want to give Gentoo a go. It gives you nearly as much control as LFS would, but with the advantage of having a userbase and documentation (the documentation is awesome) for if/when you get stuck. I ran Gentoo for my first five years of Linux-usership (I use Arch now), and it's definitely the reason that I'm as good at Linux as I am.
Installing Gentoo is a so easy it can be done in two steps!
> 1) fdisk /dev/hda && mkfs.xfs /dev/hda1 && mkswap /dev/hda2 && swapon /dev/hda2 && mount /dev/hda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-.tar.bz2.DIGESTS && tar xvjpf stage3-.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo/ && env-update && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/hda && init 6 && emerge gnome mozilla-firefox openoffice && emerge --sync && emerge portage openssh
> 2) reboot
(This was in the uncyclopedia article for gentoo a while ago, but it got removed for some reason. So i dug through the edits and copy pasted it here)
edit: grammar and formatting
Mate, the best one is their article on gentoo: http://uncyclopedia.wikia.com/wiki/Gentoo
> Installing Gentoo takes only two easily memorable commands:
> 1) fdisk /dev/sda && mkfs.xfs /dev/sda1 && mkswap /dev/sda2 && swapon /dev/sda2 && mount /dev/sda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-.tar.bz2.DIGESTS && tar xvjpf stage3-.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo bash -lc 'env-update && source /etc/profile && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/sda && init 6 && emerge gnome mozilla-firefox openoffice && emerge --sync && emerge portage openssh > > 2) reboot
Installing Gentoo is a so easy it can be done in two steps!
> 1) fdisk /dev/hda && mkfs.xfs /dev/hda1 && mkswap /dev/hda2 && swapon /dev/hda2 && mount /dev/hda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-.tar.bz2.DIGESTS && tar xvjpf stage3-.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo/ && env-update && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/hda && init 6 && emerge gnome mozilla-firefox openoffice && emerge --sync && emerge portage openssh
> 2) reboot
Offtopic: I find it amazing how creating a github with some cloned code makes people feel very safe when downloading & running that exe binaries included with it.
Compare the people reaction without github to this thread - The funny thing is basically the same binary could have been malicious all the time!
I suppose deploying malware to members of some PC-stuff-related community with a social engineering technique, involving a fake github creation, might be a real danger soon.
While my binaries contain no malware - please remember that:
Binaries you download from a link within a GitHub project are no safer than those you download from an anonymous torrent tracker!
Opening a new GitHub account & cloning some source code there will take under 5 minutes and doesn't even require an email!
P.S. Those who want to be completely safe should follow the simple steps you already know about - install Gentoo Linux (trololol)
Follow the Gentoo Handbook if you want to install Gentoo. If you want to see what Gentoo has to offer, try out the Gentoo LiveDVD.
I would honestly say learn slowly. If you have a system that can handle VM's well, maybe try Gentoo in a VM where you can't bork anything, but if not or if you don't want to just jump into the deep end...
I'd recommend using Debian, spending as much time tinkering on the command-line as you can, have fun playing around...Maybe try building your own kernel on Debian which is one of the hardest parts of the Gentoo install.
Also, read through the Gentoo Handbook ( http://www.gentoo.org/doc/en/handbook/ ) and see if you feel overwhelmed by anything in it...If so, google and learn more about the command or the section (like "partitioning with fdisk" for example would be a good Google search), if not or when you don't anymore, give installing it a try. It's actually quite fun...Unless stuff breaks. :P
If stuff does break though, try not to get frustrated. You'll have it fixed and almost anything you might screw up in Gentoo can be fixed without needing a reinstall.
> The systemd opponents are only ranting online, they don't contribute code
To be fair, systemd opponents did spin off eudev and uselessd. This year's OpenBSD Google Summer of Code project is probably somewhere close to that as well.
Neither of these projects gained much community momentum (yet?), but they do exists.
It's not that hard to become a developer. You just need to have some perseverance. You have to do some reading to fill out some quizzes, in order to show that you understand how Gentoo works as an organization, and how to write and maintain ebuilds. The process is described in more detail here.
But there are many other things you can do to help. For example, you can contribute to the wiki; answer questions on the forums or IRC; report problems (or even simple things like version bumps) on the bugtracker; testing; promotion; and so on.
http://www.gentoo.org/doc/en/security/security-handbook.xml?full=1
http://www.gentoo.org/proj/en/hardened/
Install the second link, and use the first links practices everywhere. Most insecurities are because of misconfigurations.
easy, this oneliner mayhelp:
fdisk /dev/sda && mkfs.xfs /dev/sda1 && mkswap /dev/sda2 && swapon /dev/sda2 && mount /dev/sda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-*.tar.bz2.DIGESTS && tar xvjpf stage3-*.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo bash -lc 'env-update && source /etc/profile && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/sda && init 6 && emerge gnome mozilla-firefox openoffice && emerge --sync && emerge portage openssh
It's not as hard as people say it is to get a working system as long as you know how to read and like others here said, have patience. There are tons of articles out there to help you with almost anything and if not, just jump on irc and your question will most likely be answered within minutes.
Have fun!!!
'emerge --sync' or 'emerge-webrsync'; or failing that 'rm -rf /usr/portage', download a new copy of portage-latest.tar.bz2 from a mirror and untar it into your /usr directory.
More info:
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=5
http://en.gentoo-wiki.com/wiki/Networkless_Maintenance#Updating_portage
installing gentoo is actually a really good learning experience if you feel like having a bit of fun and learning about your system. follow the amazing gentoo handbook and step by step install your system: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml
If you ever have the time I highly recommend it.
Finally I can show of my Desktop =)
Distro: Arch
WM: xmonad (no DE)
Looted the conky config and wallpaper from a guy at the gentoo forums and did a few alterations (example: the lines within the widest circle is cpu temp (one for each core) instead of free space).
Once you get a bit more comfortable with Linux, try doing a Gentoo install. The installation process is VERY well documented, called the Gentoo Handbook (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml). Once I did a few of these installs, I was really able to learn what requires what and how things are all pieced together. Lets you see the grand scheme of a Linux system. Do it in a VM as well so there aren't any permanent screw-ups.
http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?full=1 will guide you through the whole installation.
But let it be known that gentoo is very very hard, so it really depends on your outlook on life. Ubuntu is incredibly easy to start with and has a really helpful forum, you'll be up and running in no time. On the other hand, if you're a glutton for punishment and like figuring out shit on your own (with the help of google and forums) then gentoo is right up your alley. Some people prefer a more smooth & easygoing start and then ramp up the difficulty as they go along and others relish the thought of going straight to nightmare difficulty. If you are the latter then welcome to the club :)
Have you got another machine? If yes, you can use distcc, a program designed to distribute compiling tasks across a network. It even works by cross-compiling from another architecture using a tool called crossdev.
da_ is absolutely right. Here are some things to consider;
Arch is great, and you will learn a lot. But at the moment they are makeing some major changes to it so I might sugest waiting a month or two before installing Arch.
I havent used Slackware in years but thats what I started learning with. Installation is is easy but there is no package manager whcih is bitter/sweet. You never forget how to find and install packages from source but you will have to deal with what is know as dependency hell.
Gentoo is a great operating system but its also one of the most in depth things you will ever install. You will learn a great deal but you should be prepared to put some work in, its more of a pilgrimage than a project. To understand what I mean, read the "quick" install guide.
Another option you might consider is to do a minimal install of Debian and build a functioning workstation from that. Its not quite as in depth as these other options but it can be fun and informative. Also, do as much as you can from the command line and remeber that every GUI tool that makes things easier prevents you from learning.
Good luck!
> But why is it that AMD64 corresponds to Intel processors?
The 64-bit Intel-compatible architecture was originally invented by AMD in 1999, and by 2004 Intel decided to also start using it. In different places you will see it called x86-64 (the original codename chosen by AMD), amd64 (the name AMD switched to after a few years), em64t or Intel 64 (the names Intel chose because using "amd64" would have been too embarrassing), or x64 (the name picked by Microsoft and Sun, probably to avoid favoring AMD or Intel). But all of these names mean the same thing. See the Wikipedia article for more details.
> When you say "install from a CD" a flash drive works in a CDs place correct?
Yes. You can use UNetbootin, or create a liveUSB the old-fashioned way if UNetbootin fails for some reason.
Per the Gentoo LiveDVD FAQ, the default username and password should both be gentoo
According to the FAQ, you should also be able to login using the KDM autologin process by pressing escape or enter.
Locales define your language and how you display dates and numbers. Although you're probably not using Gentoo, check out http://www.gentoo.org/doc/en/guide-localization.xml part 3 for a description of Locales, what they do and what "generating" them means.
https://www.zdnet.com/article/the-secret-origins-of-googles-chrome-os/
>So, Chrome OS today is based on Ubuntu? Well, no... it's not. The first builds of Chrome OS had Ubuntu as its foundation, but it's changed over the years. In February 2010, Chrome OS started switching its foundation Linux distribution from Ubuntu to the older, and more obscure, Gentoo Linux.
What you describe is how I do my Gentoo installs (although from Debian, or an Ubuntu live disc) when I get the urge to toy with it.
You can follow the procedure here in a terminal in your usual distribution, simply leaving out the reboot steps and doing everything in the chroot until your Gentoo system is ready to be booted into. Also, it's an x86 guide, but is easily adapted for x86_64 with some minor changes -- just ask and I, and I'm sure many others, will be happy to offer what assistance we can.
One thing I do differently from the guide is get my partitions ready in Gparted in advance, since it's a little faster to work with than the command line steps.
Gentoo is fine if you have any reasonable level of intelligence. You'll definitely learn something from the process that you wouldn't get from just following a generic guide for a debian-type distro. Embrace the CLI.
Here is your new bible: http://www.gentoo.org/doc/en/handbook/
Linux From Scratch may be a good option for you from a learning perspective.
If not, Gentoo.
If you want to game, Ubuntu is probably your best bet.
I would say Gentoo since everything is compiled to your processor based on specific flags. http://www.gentoo.org/ For example on my machine that is an amd anthlon 64 my flags look like this -D_FORTIFY_SOURCE=2 -march=k8-sse3 -msahf --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=1024 -mtune=k8 It's my opinion guys.. I'm not going to spend all day defending Gentoo
I'd say, If you want to start "advanced" go with Arch. If not then Mint, Ubuntu, Fedora... Or even KaOS.
I'm so masochist that I started using Linux with Gentoo. I don't recommend it. I used Arch for few years, but went back to Gentoo.
If you still feel like customizing more after you have got used to Arch, then maybe Gentoo.
Please start with this page: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=1
Then go with http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=2#doc_chap3
and you will be well upon your way.
You might consider something like Gentoo or Funtoo if you want bleeding edge.
Like others have mentioned, I've found Ubuntu to be just a little behind the bleeding edge. It is a pretty good place to be. For specific things, you can usually find someone who is doing the hard work of bringing bleeding edge into your current distro... but I'm not sure about xserver or mesa specifically (sounds like maybe you've looked).
The problem is that the "real" /bin
(and so on) actually live under something like /mnt/live
on that cd, and /bin
itself is just a symlink. When you mounted something directly on /mnt
, it hid the contents of the directory, preventing you from running further commands. The Gentoo Handbook explicitly states to mount under /mnt/gentoo
so as to avoid these kinds of issues (see the instructions from the amd64 version of the handbook)
I'm sorry I dropped off the face of the planet for the past day and a half. Once you make changes to that file, you must recompile the kernel and/or modules that were used. If you configured everything as "m" then they are modules and might make this easier.
Following this: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7#doc_chap3
As root, go to /usr/src/linux and run:
make && make modules_install
Then copy the new kernel into place in /boot.
The easiest way to apply all changes is just to reboot. However if you didn't make a new kernel, just modules, you can try unloading the old and loading the new ones:
rmmod cfg80211 modprobe cfg80211
You can try b43 after that.
> Gentoo has root to your Gentoo machine
What does that even mean?
The for-profit corporations promoting proprietary- and/or binary-based packages I get. But... Gentoo, a non-profit foundation promoting source-based packages specifically patched, configured, and compiled by your machine, to your specifications, for your requirements? Really? If any collective entity could be said to be fundamentally incompatible with "having root," it would be Gentoo.
That's the IPv6 specific documentation. Our handbook says this:
>We provide two interface handlers presently: ifconfig and iproute2. You need one of these to do any kind of network configuration.
> ifconfig is installed by default (the net-tools package is part of the system profile). iproute2 is a more powerful and flexible package, but it's not included by default.
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4&chap=3#doc_chap2
> It may not be installed by default (no idea why they'd do that)
That is curious indeed. I guess our base-system maintainers have not seen the need to switch the default yet.
Here's a rather simplistic overview...
Download the kernel source into a directory of your choosing
Enter that directory and enter "make menuconfig"
Select the kernel options and modules that you so desire
Save and exit
make && make modules_install
Copy the bzImage file that's located in /$kernel_source/arch/$architecture/bzImage (that's a really rough estimation from memory, it's been a while since I've compiled a kernel myself).
Of course, that's an extremely rough idea. I first learned some of this stuff by reading the gentoo documentation so I'll point you in that direction [1]. Compiling in NFS support should fall under the File Systems category when you're in menuconfig, and if you're only interested in mounting nfs shares on the raspberry pi then there should be no need to compile in NFS server support.
HTH!
How to start:
If you don't have bare-bones hardware to spare, you can even do this on a virtual machine via VirtualBox, VMWare, etc.
By the time you have a working site, you'll have done the following:
apt-get update && apt-get safe-upgrade
or yum update
(and dealing with them if/when they do break) a breeze.Here is the approach I used in a similar situation (assuming some other linux is already installed, has wifi, and partitioning is possible as per these instructions): 1. Create the partitions you will use for arch along side the current OS's partition. 2. Install arch on the new partition/s in the normal way. 3. Boot the original OS and mount the drive/s with arch on them somewhere. 4. chroot into the arch install. Follow the instructions here! starting with "Copy DNS Info" (and replacing /mnt/gentoo with /arch/root/directory). 5. Configure arch as you normally would , enjoying the fact that you have internet access. Figure out what (if any) extra packages you need to get wifi working under arch for your wireless card. 6. Make your bootloader aware of arch.
Alternatively you can just download all the packages you need (figure out which ones by doing a dummy install in a vm), putting them on a flash drive, installing arch and then installing from the .tar.xz files.
Haha, i stick to windows for my primary desktop, but most of my laptops/netbooks/secondary desktops run linux.
I -was- going to try gentoo but after seeing the quick install guide i deleted the iso.
it really is for psychopaths. I would not piss off a man that has installed gentoo.
You can have a master (faster) system build binary packages for the "slaves" should they all have the same USE/FEATURES etc. Build once and distribute.
have you untared the portage tarball to (i think /usr) sounds like it's not installed...
(I assume you're using the gentoo install docs...)
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=5#installing_portage
EDIT: path is actually: tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
maybe you've not chmod'd to the gentoo install?
Fire up a virtual machine (VirtualBox is free) and work through the Gentoo installation handbook. You will learn a lot very quickly, but there's still a lot of good signposts to help you get back on the road when you screw up (which you will, don't worry).
>In 3.x, -O3 has been shown to lead to marginally faster execution times over -O2, but this is no longer the case with gcc 4.x. Compiling all your packages with -O3 will result in larger binaries that require more memory, and will significantly increase the odds of compilation failure or unexpected program behavior (including errors). The downsides outweigh the benefits; remember the principle of diminishing returns. Using -O3 is not recommended for gcc 4.x.
I like Arch -- been using on my desktop for about a month -- but for servers, I still use Gentoo. Arch really isn't meant for servers (yet? see: ArchServer ).
With Arch you mostly grab binaries and install, which is great from a speed and efficiency perspective, but it doesn't offer the ability to have use flags, a far as I'm aware.
It also doesn't have a system to manage config file updates, like Gentoo has with dispatch-conf and etc-update.
New software out? A lot of times there's an ebuild out there on bugs.gentoo.com with a request to put it in the portage tree.
Arch has AUR, and I use yaourt to compile a lot of packages from there, too.
But comparing Portage's emerge with pacman or yaourt just makes the latter two look like a weak version of emerge.
Arch seems to take a more Red Hat/Debian approach: pulling from official repositories, adding custom, third-party ones if you need something else.
Gentoo mostly just maintains their own repositories, and everyone mirrors them; there aren't too many third-party ones.
Project Sunrise is nice: http://www.gentoo.org/proj/en/sunrise/
I'll stick with Gentoo on my servers, and Arch on my desktop.
The script in the comments lost formatting and copy pasting resulted in periods instead of quotes. Below is a working version.
#!/usr/bin/python2 from BeautifulSoup import BeautifulSoup import portage import urllib2
url = 'http://www.gentoo.org/proj/en/qa/treecleaners/maintainer-needed.xml'
# Build a to remove set f = urllib2.urlopen(url) soup = BeautifulSoup(f.read()) table = soup.first('table', {'class': 'ntable'}) toremove = set(row.findChild('a').text for row in table.findChildren('tr')[1:]) f.close()
# Build an installed set vartree = portage.db[portage.root]['vartree'] installed = set(vartree.dbapi.cp_all())
# Print installed, but to be removed packages = sorted(toremove.intersection(installed)) if packages: print "The following %d installed package(s) need a maintainer" % len(packages) for package in packages: print "-", package exit(1) else: print "All installed packages have a maintainer :) " exit(0)
Linux runs pretty well on almost anything. I'm oversimplifying, but if you want to learn how easy Linux can be, try Ubuntu. If you want to learn on a lower, technical level about how Linux works and what makes it tick, try Gentoo or Linux From Scratch.
If you're interested in using Gentoo's Portage system, then you can do much the same thing with a prefix (http://www.gentoo.org/proj/en/gentoo-alt/prefix/). It's also set up to be a chroot, but takes care of some of the nasty edges for you.
Between /Applications, MacPorts, and portage, I've got three ways to get software on my mac :-D
I have no idea why Gentoo isn't more popular. Installing Gentoo is easy. Just two simple commands:
1) fdisk /dev/sda && mkfs.xfs /dev/sda1 && mkswap /dev/sda2 && swapon /dev/sda2 && mount /dev/sda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-.tar.bz2.DIGESTS && tar xvjpf stage3-.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo/ && env-update && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/sda && init 6 && emerge gnome mozilla-firefox openoffice && emerge --sync && emerge portage openssh
2) reboot
Dunno what mistake you could make that you'd have to recompile... I don't worry about mad compile flags (see above for one reason) - I use gentoo because it lets me control what I want, not for "mad gcc flags".
Mean my make.conf is pretty basic
CFLAGS="-O2 -pipe -march=athlon64"
CXXFLAGS="${CFLAGS}"
# These flags are moved into a seperate symbol (for both x86 & x64)
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4a sse4_1 sse4_2 ssse3"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j14"
LINGUAS="en_GB en"
L10N="en-GB en"
LANG="en_GB.utf8"
then most of rest is in USE flags that I accumulate over time, and if you later decide for example that you want to turn off bluetooth support in everything then you add a -bluetooth to USE (or a file in package.use) and then time you "emerge -DuavU world" (that's my standard set of flags) then it'll recompile anything where the use flag has changed (-U), so anything that's already installed with USE bluetooth.
You are absolutely correct, of course. Anyone of even average IQ could run gentoo. I mean, installing it is as easy as just running two simple commands:
1) fdisk /dev/sda && mkfs.xfs /dev/sda1 && mkswap /dev/sda2 && swapon /dev/sda2 && mount /dev/sda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-.tar.bz2.DIGESTS && tar xvjpf stage3-.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo/ && env-update && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/sda && init 6 && emerge gnome mozilla-firefox openoffice && emerge --sync && emerge portage openssh
2) reboot
For support or general updates check out the official support forums and the relevant mailing lists, or IRC
Good luck.
make.conf:
# These settings were set by the catalyst build script that automatically # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" # WARNING: Changing your CHOST is not something that should be done lightly. # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. CHOST="x86_64-pc-linux-gnu" # These are the USE flags that were used in addition to what is provided by the # profile used for building. USE="bindist mmx sse sse2 qt -kde -gnome -gtk -wxwidgets -xscreensaver -handbook
-policykit -consolekit -acl -xdm-xauth -realtime -udisks -upower -bluetooth -nls -ncurses -cups -ppds -dvd -dvdr -cdda -cdr
alsa pulseaudio nvidia portage
truetype corefonts icu pcre
abi_x86_64
skypeapi
lm_sensors
-doc -hscolour
"
PORTDIR="/usr/portage" DISTDIR="${PORTDIR}/distfiles" PKGDIR="${PORTDIR}/packages"
MAKEOPTS="-j9"
ACCEPT_KEYWORDS="~amd64" ACCEPT_LICENSE="*"
EMERGE_DEFAULT_OPTS="--quiet-build=y" CLEAN_DELAY=0
VIDEO_CARDS="intel nvidia"
INPUT_DEVICES="synaptics evdev"
PORTDIR_OVERLAY=/usr/local/portage
LINGUAS="en"
source /var/lib/layman/make.conf
GENTOO_MIRRORS="rsync://128.61.111.10/gentoo ftp://128.61.111.10/pub/gentoo rsync://ftp.snt.utwente.nl/gentoo http://91.121.189.201/gentoo-distfiles/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo"
package.mask/*:
kde-apps/*:5 <sys-devel/libtool-2.4.3-r2 <sys-apps/openrc-0.13.0 <sys-process/procps-3.3.9-r2
It's also easy to install. Installing Gentoo only takes two steps:
> fdisk /dev/sda && mkfs.xfs /dev/sda1 && mkswap /dev/sda2 && swapon /dev/sda2 && mount /dev/sda1 /mnt/gentoo/ && cd /mnt/gentoo/ && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c stage3-.tar.bz2.DIGESTS && tar xvjpf stage3-.tar.bz2 && links http://www.gentoo.org/main/en/mirrors.xml && md5sum -c portage-latest.tar.bz2.md5sum && tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr && nano -w /mnt/gentoo/etc/make.conf && mirrorselect -i -o >> /mnt/gentoo/etc/make.conf && mount -t proc none /mnt/gentoo/proc && mount -o bind /dev /mnt/gentoo/dev && chroot /mnt/gentoo/ && env-update && source /etc/profile && emerge --sync && cd /etc && rm /etc/make.profile && ln -s ../usr/portage/profiles/default-linux/x86/desktop make.profile && cp /usr/share/zoneinfo/US/Eastern /etc/localtime && cd /usr/portage && scripts/bootstrap.sh && emerge -e system && emerge vim && emerge gentoo-sources && cd /usr/src/linux && make menuconfig && make install modules_install && vim /etc/fstab && passwd && emerge grub vixie-cron syslog-ng dhcpcd && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vim /boot/grub/grub.conf && grep -v rootfs /proc/mounts > /etc/mtab && grub-install --no-floppy /dev/sda && init 6 && emerge fluxbox mozilla-firefox libreoffice && emerge --sync && emerge portage openssh
> reboot
Ha ha, this might be the eleventh time I've seen someone ask "How do I become a developer?" and also the eleventh distinct answer.
I followed the instructions on the official doc, which says something like "Start fixing bugs, we'll notice your contributions!" I jumped in to help with some bugs. I confirmed an existing bug, submitted a patch for it, and seven months later there has been no further activity on the bug. I'm quite sure if I fixed one hundred bugs the devs wouldn't "notice" anything.
It seems bullet #2 (fix more bugs) and bullet #3 (lower dev barrier) form a hilarious circular dependency.
Last time I checked it was still considered "experimental" for any Linux distro which acknowledged it.
I still don't know anyone who packages it for easy testing/experimentation.
The way I understand it is that if anyone is currently running X32, they have to be really bleeding edge enthusiasts willing to compile everything, and I mean everything, by hand. Or do I have my facts wrong?
Edit: Read -> Respond. I see Gentoo (who else?) has something up.
It kind of sounds a bit like a missing kernel configuration option. I would try installing a "genkernel" and see if it works there. If that works you can still try to figure out what kernel option you miss and then recompile your own kernel.
gentoo prefix http://www.gentoo.org/proj/en/gentoo-alt/prefix/
It lets you install pretty much any gentoo package into a folder (that can be in you home). needs no root privileges. handles all the dependencies. I have used it on RHEL5 (actually scientific) where I did not have root, but needed newer python packages. Only downside is that everything is from source, so large packages can take a while to install.
Best of luck to you. If you enjoy it, and really want to test your l33t linux skills much later down the road, grab a spare HDD if you have one lying around and try this out.
I would NOT recommend using Gentoo as your primary OS and replacing Ubuntu/Mint/Debian/Whatever with it, but the process of installing it walks you through the vast majority of how the actual OS works at a deeper level, and is much faster and easier to get through than LFS
Again, this is not for right now, set your distro of choice up and have fun messing about with the basics, and this is not supposed to be a "Gentoo best distro" thing, just that the installation process teaches you a hell of a lot.
I had a similar issue with my wireless drivers.
Do you have another OS with a working internet connection, or access to another computer connected to the internet?
What I did was I chose not to use the installation CD at all, and instead used the stage3 tarball. Here's a link to the handbook which talks about installation mediums, more information on the stage3 tarballs are listed there, and you will also find a download link.
To skip out on the installation CD you will need to have a linux distribution installed, so that you can create your partitions, mount them, unpack your tarball, and then chroot into the directory. The handbook mentions all of these steps towards the beginning, so I recommend just reading through and making note of what you won't be able to do right away without the CD. (A quick example is that the mirrorselect command isn't included in the tarball, so you'll have to emerge mirrorselect after you get emerge set up later on. This method isn't drastically different from using the CD.)
I'll happily help with any other questions, if you have any.
edit: Changed my link to point to the powerPC version of the handbook. You might want to look at the ppc64 version too, alternatively, if that applies to you.
> How did you learn what you know about computing at levels like these?
Oganically. I build my own desktop machines, so there's research into what would make a good one. I also use Gentoo Linux which used to require a lot more work to install on a computer and requires one to learn at least a little bit to fine tune into a system that works for the individual. So often there's a bit of learning when building machine or installing/adjusting/maintaining its OS.
I've a general interest in things tech/computing - I pay attention when new info comes to my notice. People have brought problems to me, Sometimes they are new but I can figure it out and I learn for myself, too.
If you want to take a dive-right-in approach take an old computer and install something like ArchLinux or Gentoo. And then try to do things, anything you can think of even it breaks your system (even more fun!) And remember the man pages are your friend (and info's handy too)
^(Bonus tip: These) ^Online ^Manpages ^(are kind of handy)
I love this VI guide (originally made by IBM developerWorks):
http://www.gentoo.org/doc/en/vi-guide.xml
PDF from IBM website:
https://www6.software.ibm.com/developerworks/education/l-vi/l-vi-ltr.pdf
The guide ends with a nice one-page hand-written cheat sheet for using vi. I have one pinned on my cube wall when I want to use a shortcut that I don't commonly use.
Don't install the drivers on the client systems, they won't see the kernel. Compile the firmware into the kernel as per http://www.gentoo.org/doc/en/xorg-config.xml and then install the xf86-video-ati drivers on both the host system. The client xorgs should be able to see it through bindings.
How to become a Gentoo developer:
If you don't already have iproute2 installed, we urge you to do it now. iproute2 is a network configuration suite that contains ip, the famous replacement for ifconfig, route, iptunnel and others... Gentoo's Documentation
It may not be installed by default (no idea why they'd do that), but it is the preferred method, even according to their own documentation.
Many of Gentoo's corporate sponsors use Gentoo on their servers, see http://www.gentoo.org/main/en/sponsors.xml
One notable example is Hyves, Holland's #1 social network, which runs on a couple of thousand Gentoo servers.
Jup, did the same with an old IBM PIII a few years ago, only difference is installed Gentoo (They have a beautiful tutorial)
And since you are a developer, you might need some test environments from time to time so you might want to look into virtualization. KVM and/or Xen are very interesting to get started with.
I'd say you are worrying a little bit too much about clutter. Linux is a complex system and there is a lot of logging etc. going on, but even embedded devices run most of these things, so it's no problem for a desktop/laptop to do.
Where abouts are the far-flung directories you mentioned? If they are in your home directory, probably do what ever you like with them. If they are anywhere else, then it's probably better to trust the tools with them.
If you really want to have control over every detail of your system, then I think perhaps you'd be happier with Gentoo than Ubuntu. I know someone who tried Gentoo... still trying to get an xserver running :P.
Actually, I make all the builds now. (I'm the leader of the gentoo/mips project: http://www.gentoo.org/proj/en/base/mips/)
Stuart hasn't been active in gentoo/mips for quite a while now. Not sure what's up.
Depends on how much time you want to invest. There are some lightweight distros out there, like Damn Small Linux e.g.
Personally, I'd use Gentoo. You get optimized binaries for your machine and really only the packages you really need. XFCE and Firefox (without Flash) should work fine on that machine.
The main things you should do are shut down unneeded services and set up an iptables firewall (a real firewall limits outgoing traffic, too.) If you want to lock things down further, set up SELinux (it's not as bad as people make it sound, but it can be annoying at times.)
You should also make sure that processes like apache are running as their own user. A chroot jail wouldn't hurt, either, although they're overhyped security-wise.
You can also harden your kernel with things like address space randomization. Hardened gentoo http://www.gentoo.org/proj/en/hardened/ is an example of such a hardened kernel, but note that they can be more trouble than they're worth.
Setup a gentoo box from scratch, this should sharpen your skills in the process. http://www.gentoo.org/ . I'm sure you have access to a virtual machine or a spare laptop even.
This, of course is coming from a Wintel guy so take my advise with a grain of salt.
The gentoo manual (excuse me handbook) is a good basic walkthrough of the steps needed to get a system up and running, but they can't get into the details of particular hardware/software. It is pretty much a necessity (imho) that you have a second computer with internet access on hand throughout the install, not just for accessing the gentoo manual but simultaneously researching the needs of your hardware and software installs.
Are you configuring the kernel manually? If you are, make sure the drivers for your root fs and hard drive are compiled into the kernel.
You should also look at the gentoo handbook's section on compiling the kernel (x86 amd64).
I no longer use Gentoo for several reasons, but as a place to start, it's what got me into Linux and gave me a lot of knowledge that I would not have gotten with a distribution like Ubuntu or Fedora.
Of course, if you don't like to tinker, then there are many other distributions recommended here that will suite you perfectly, but if you really want to "get into" Linux, Gentoo (or Arch) is a great place to start if you're willing to learn (and suffer... a little).
Edit: Skimming through the manual makes me want to reinstall it. I know what I'm doing tomorrow... My dissertation. :(
Nah, well so long as it's not critical for you to get up and running as quickly and as stable as possible, Arch is really fun to play around with. It should make a nice, low resource server as well. Don't get me wrong, Arch isn't inherently unstable, but you are looking at a much higher work load to get it running, and nicely than with something like debian. You also want to factor in more frequent, potentially less stable updates. If you've got a bit of time and want to learn more about Linux, it's certainly worth doing. If you don't like it, or hit a wall you can always try something else. It's worth looking at Gentoo as well, I guess it's probably less work to get set up, but if you're compiling all the packages yourself, factor in 5-10 hours potentially, as well as the fact you may not get it working first time round.
Power management is a very broad field, and runs certain risks, so you'll want to do a lot of reading up on it. Have a look at this article for a bit of an overview, but don't mess about too much with anything until you've done a fair bit of googling and reading on it. And nah, you're right that it's probably not gonna be a big power hog, but breaking shit and not being able to fix it for hours is fun. :D
wow! those were the days...
I remenber a 2009 contest:
https://www.deviantart.com/ashtophet/art/fvwm-june-2009-125788925
that is not true. just aquiring a key isn't always enough. i.e. keyservers get spammed with fake keys. So you have to somehow find a way to trust the key.
there are different ways of trust into a gpg key. the 2 most common is either you trust them or you trust them indirectly throught the web of trust.
the frist you get with gpg --edit-key [file]
and use the trust
subcommand.
Also you are trusting this key. So verify the fingerprint with different devices and sources. i.e. gentoo.org and your mobile.
In the end, you are trusting the people having access to the key, that they follow the perfect or flawed workflow to prevent malicious intent. (i think this is what /u/unixbhaskar meant)
inside my make.conf
# *** CFLAGS and CXXFLAGS ***
# CFLAGS and CXXFLAGS variables define the optimization flags for gcc C and
C++ compiler.
# See https://wiki.gentoo.org/wiki/GCC_optimization for more information.
CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}"
#
#
VIDEO_CARDS="i915 radeon"
#
# *** CHOST ***
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before
changing.
# for 64bit Intel PCs
CHOST="x86_64-pc-linux-gnu"
# for 32bit Intel PCs
# CHOST="i686-pc-linux-gnu"
#
# *** USE flags ***
# These are the USE flags that were used in addition to what is provided by
the
# profile used for building.
# See official Gentoo docs for more information.
USE="bindist mmx sse sse2 udev branding dbus startup-notification"
#
# *** MAKEOPTS ***
# With MAKEOPTS you define how many parallel compilations should occur
# when you install a package. A good choice is the number of CPUs (or CPU
cores)
# in your system plus one, but this guideline isn't always perfect.
MAKEOPTS="-j9"
Not sure correct or not. Ohter devices still not include inside make.conf, need to make my display working first.
Oh, that's sweet !
So I tried to set it up (I'm new to layman, I like to run mostly amd64 stable so layman stuff is often out of scope but I'm ok for this time) but emerge cannot found the package :
# layman -l * aegypius Git
Looks up to date though...
# layman -S
* Fetching remote list,... * Remote list already up to date: http://www.gentoo.org/proj/en/overlays/repositories.xml * Last-modified: Sat, 05 Sep 2015 20:00:45 GMT * Fetch Ok
* Syncing selected overlays,... * Running Git... # ( cd /var/lib/layman/aegypius && /usr/bin/git pull ) Already up-to-date. * * Succeeded: * ------ * Successfully synchronized overlay "aegypius". * * * Warnings: * ------ * Overlay "aegypius" could not be found in the remote lists. * Please check if it has been renamed and re-add if necessary. *
But portage fails
# emerge --ask app-editors/atom-bin
These are the packages that would be merged, in order:
Calculating dependencies... done!
emerge: there are no ebuilds to satisfy "app-editors/atom-bin".
Would you have any clue what's wrong with my layman setup ?
I could install the ebuild with the ebuild command I guess but it just looks messy to do so.
Thanks for the tip either way :)
Yes, I just know about it, because I use Gentoo Linux on my workstation and in some programs it's a compile time switch (meaning, you can choose to create the program from source either with or without this feature). When I played around with those options, I accidentally made a panel have it and an application not have it. The result was the panel changed the cursor, but the application never reported back that it finished starting up. So the wait-cursor stayed very long until a timeout expired.
While examining the situation I found it. In binary distributions only package maintainers use compile time switches like these when building binary packages from source for their users.
This is a list of those compile time flags for Gentoo packages (it's probably not useful for you): http://www.gentoo.org/dyn/use-index.xml The flag I had mixed in two packages is " startup-notification ".
Later I found it's a specification (probably also too low level to be helpful for you): http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt This is for programmers, so they know how to implement it in a way that is compatible with everyone elses code.
The Gentoo Documentation has a list of regular expressions, but I only see options for searching the beginning and the end. /../ gives me weird results.
It seems like I can remove the beginning of the strings, but they have slashes in them, and it is screwing up the command.
Gentoo Prefix is a way of running a gentoo environment within another OS type (OSX, Other linux distro, Windirs, Unix, etc). There is a script that installs and configures automatically.
Looking at it now it seems that you may be running a dual boot system, which this is not.
In regards to a chroot, the easiest way would be to run a Gentoo prefix. That what I use when I'm not able to be on my own install.
Works nicely on a mac :-)
It's a Linux distro, it's definitely not for beginners coming into Linux, so if you don't know what it is don't bother. ^[.]
Though if you're waiting for your parts, you should try installing UNIX on your laptop [UNIX being GNU/Linux, BSD, etc, probably Linux]. I'd recommend a distro like Ubuntu [though I'd get rid of Unity], Mint, Debian [outdated packages, yet very stable], or maybe if you want to jump right in; Arch [Like Gentoo, it's a bit harder to install, though it's well documented and quite a bit easier to install then Gentoo, you basically build it from scratch, and can build/customize it to your liking, you'll learn a lot about linux, shells & UNIX in the process :D]
Did you use the handbook? I find that this is covered in the section on mounting:
> Code Listing 6.1: Mounting partitions
># mount /dev/sda4 /mnt/gentoo
># mkdir /mnt/gentoo/boot
># mount /dev/sda2 /mnt/gentoo/boot
Of course, it could be missing in other versions of the handbook...
If you really want to know the nuts and bolts, download en install Gentoo. And if possible, actually use it.
It is hell to install it. And it's hell to maintain it. But! Once you have it running, you know a lot about what going on under the hood.
I've used Gentoo on desktops an servers for years. And I don't recommend it to anyone, because is really high maintenance. Except when someone actually wants to learn Linux. I can tell from my own experience that it actually works. I tried several distro's that run out-of-the-box. And that's nice, but it leaves you a bit lost once you installed it. You still don't know shit. But once I got Gentoo running, I knew a lot about how my system actually worked. It really jumpstarted my love for Linux.
Depending on your thirst for adventure, you may want to try Gentoo as well. You'll have a good general understanding of Linux if you can make it through a Gentoo install, but it won't be easy for a first timer.
Start here: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1
As far as I know, MintPPC isn't being actively developed anymore because the developer simply doesn't have the time...
If you want to take the plunge in to Gentoo, go for it- but it will take a long, long time to compile and install everything (gentoo is a source distro, so everything is compiled from source and specially tailored to your system).
You can get a good start here: http://www.gentoo.org/doc/en/handbook/handbook-ppc.xml
Protip: you will need an internet connection to install the system! when installing the system, use an Ethernet cable to connect to the internet and download/compile packages. You can use wifi but it's a real pain in the ass to set up.
I hope it get not slapped for this now...but if you are looking for a liveDVD to check out the different desktops give the gentoo live dvd a try. I for sure don't recommend gentoo to any newbie to linux...but the liveDVD of gentoo is more an example of what is possible. It comes with KDE, gnome, xfce, lxde, fluxbox, enlightenment, metacity, openbox, windowmaker, mutter and awesome as desktops/window managers and you can switch between those and have a look at each. And it doesn't come with any disto specific adjustments to the desktops. The KDE you see there is the KDE as it comes from the KDE team. Same for gnome and xfce. Another "advantage" of the gentoo DVD is that it's not an "install" DVD. Really hard to mess up your current system with it at all...it usually would mean you have to start the command line and "accidentally" mess up there! No "install" icon or anything ;).
You can easily cross-compile to a RPi running Gentoo and have it install binary packages compiled somewhere else. Have a look at the crossdev manual and the wiki page for binary packages.
Disclaimer: all these suggestions involve some form of Linux
P.S. Do yourself a favor and check the RAM (using memtest) and the HD (using SMART) before trying this. It might be dead already.
Here is a non comprehensive list of efficiency tweaks I make to my Gentoo laptop.
There might be more but that is all I can think of right now.
I made the switch from Arch to Gentoo about a year ago on all my systems and I couldn't be happier (I've also become a developer in that time). When i made the switch, I put a topic on this subreddit about Why and such, here's the link: http://www.reddit.com/r/archlinux/comments/jy2l0/how_i_learned_to_stop_worrying_and_love_the_gentoo/
I think it pretty simply sums up "Why Gentoo?". Also, in my opinion, Arch has gone even further downhill and Gentoo's only gotten better since i made the above post, but...
EDIT: Also, I would say the Gentoo is far more flexible than people give it credit for. It's used by Northrop Grumman (HUGE US defense contractor), the New York Stock Exchange and there's a 7783 core cluster using it (among many, many smaller ones) source, and on the flipside, it can be used on a box with 2MB RAM and 17MB of disk source. Not many other distros you can say that about.
I'm not 100% up-to-date on *BSD's security efforts, so I can't give you a proper answer to that. I couldn't find much of note in the FreeBSD handbook though. Lots of info on securing your system, nothing on what they do to secure it. The gcc-4.6 port seems to be vanilla GCC, I can't really be bothered to find the system GCC right now but I assume it's not much different.
Gentoo's offering consists of a patched toolchain, many ebuilds/packages patched to work properly with that toolchain, predefined kernel options and easy-to-install SELinux & grsecurity setups. There's lots of options and most of them actually work.
Consider doing it from an alternative live cd. This way, you can do your work in a comfortable environment. For example, if you're going 32 bit, Puppy linux might be nice. Instructions are available online. Also, read ahead before doing things.
I really recommend this Gentoo guide for vi. At the end, it gives you a hand-drawn one-page cheat sheet you can print out. I have one hanging on my cube wall.
Ohh...I don't know! It looks like the chrome OS uses the portage package manager, so find a way to open a terminal in chrome and use the intro here to search for the java runtime environment and install it.