Pages

Sunday, 5 February 2012

Upgrading Debian From i386 To amd64

                                                          Upgrading Debian From i386 To amd64

Check wether your Intel/AMD processor supports the 64-bit "long mode"


grep -q '^flags.* lm ' < /proc/cpuinfo && echo yes

If you compile you own 64-bit kernel on the still 32-bit system you just have to install the package gcc-multilib and to start make with :

ARCH=x86_64 make

At the end your 64-bit kernel will smile in arch/x86_64/boot/.
Setup your bootloader to start it with and reboot your system.

Create a 64-bit mini system

mkdir /chroot64
apt-get install debootstrap
debootstrap --arch amd64 wheezy /chroot64 http://ftp.debian.org/debian

"Login" into your mini system and add some more packages:
chroot /chroot64
apt-get install file bzip2 openssh-client lftp
<CTRL-D>

Create a list of the 64-bit binaries of the mini system


The mini system is what you want as your main system apart from the facts that a)it comprise a lot less packages and b) it's not you main system just a sandbox now. We will disperse this sand onto the main, but only the executables, all other files (e.g. your adored config files in /etc remain intact), so collect them:

cd /chroot64
find . -depth | while read f
do
if file -L "$f" | grep -q ELF
then
echo "$f" >> /tmp/bins.txt
fi
done
echo "./etc/ld.so.cache" >> /tmp/bins.txt

Note1: you could run the commands in the chroot too, but then you have to go to its root 'cd /' at first and your 'bins.txt' come off in /chroot64/tmp.
Note2: the last command, adding the ld.so.cache is crucial! It's not an executable, but needed by the dynamic linker (ld.so).

Upgrade your 32-bit system closest to the mini system


In order to have your 32-bit system as much as compatible (from the configuration files POV) to your mini 64-bit system, upgrade all your packages you have installed in the 64-bit mini root.

#chroot /chroot64
#dpkg --get-selections|awk '{print $1}' > /tmp/minipackages.txt
#<CTRL-D>
#apt-get update
#apt-get install `cat /chroot64/tmp/minipackages.txt`

Boot your rescue disk


One step must be done from an external system (Live Linux CD), because you cannot change the very base binaries beneath youself. Or at least it would be quiet risky. So, get a system rescue linux CD or USB stick based distro. One of my favourite is [http://blag.chaox.net/|Chaox]. It has a very recent kernel, it's tiny, it has all the important system tools and even an X interface with nvidia proprietary driver and works both from CD and from USB out of the box.
After you booted it mount your main system eg. under /main:

#mkdir /main
#mount /dev/sda1 /main
#cd /main
#ls   # check if it's really the root of your main system
#cat etc/fstab # see all your other filesystems, eg: /usr
#mount /dev/sda8 /main/usr
#mount /dev/sda11 /main/tmp
...

Overwrite your 32-bit base system


Overwrite the binaries of your main system from the 64-bit mini root:
#cd /main/chroot64
#cpio -pVdu /main < /main/tmp/bins.txt
Unmount all your mounted partitions:
#umount /main/tmp
#umount /main/usr ...
#umount /main

Reboot to your 64-bit system


Now since the all the minimalistic, most important part of your system (binaries and libraries) are 64-bit, you can boot it! Of course the 99% of your system is still 32-bit. They will most probably not work, because the rudimentary libraries are already 64-bit and the dynamic loader will complain it about. You will have a terrible boot :-), but you will able to login and use the base system.
Once in this point I got the following friendly message:

run-init: /sbin/init: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

I booted from USB again and saw that the /sbin/init is there and it's a good 64-bit exec. Kernel lies! Or don't? Just a bit. The init is there but init wanted to load the libc6.so. Of course the 64-bit version which resided in /lib64. On the mini root system there were a symlink: /lib -> /lib64. So I created the symlink (sill using the rescue image) and the next boot succeeded, sigh.

Reinstall all the packages

apt-get install -f

you will need your own creativity, because the issues you will have are always differ. I could not do two migration with the same problems. I can therefore tell you about some common case you will probable experince too. After each fix I'll write here below about you can repeat your previous installation step and it will goes further.

  • libc will not be upgraded automatically
Internal Error, Could not perform immediate configuration (2) on libc6

E: Could not perform immediate configuration on 'libc6'.Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)

Apt downloaded libc6-amd64, but don't dare to exchange it, because it's another architecture. (It does not know, that it is already changed, so it would do nothing just update its own database.) So, you have to help it:

#cd /var/cache/apt/archives
#dpkg -i libc6*deb
Then you can continue the 'apt-get install -f'.
  • clashing libs
The dynamic loader (at the time of writing) does not support to have the 32-bit and the 64-bit version of the same library (soname) in the same directory. If you see warnings like:

ldconfig: libraries libz.so.1.2.3.0 and libz.so.1.2.3.3 in directory /usr/lib have same soname but different type.


you should go there and check, which is the 32-bit version. It won't be needed any more, so you can simply delete it:

# cd /usr/lib
# ls -l libz.so*
lrwxrwxrwx 1 root root    15 Dec 30 21:25 libz.so -> libz.so.1.2.3.4
lrwxrwxrwx 1 root root    15 Dec 30 21:25 libz.so.1 -> libz.so.1.2.3.4
-rw-r--r-- 1 root root 93936 Dec 28 20:10 libz.so.1.2.3.4
-rw-r--r-- 1 root root 93936 Jun 18 11:14 libz.so.1.2.3.0

# file libz.so.1.2.*
libz.so.1.2.3.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
libz.so.1.2.3.4: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

# rm libz.so.1.2.3.0
# ldconfig   # now you won't get complains about libz


Such warnings are frequent if your old system lags more from the current unstable one, because then the new version of the same libs could have another version, so they won't be simply overwritten.
  • missing "base" packages
Many poinstall scripts want to start 'menu' and 'pyhon'. But apt-get not enough clever to start the package reinstallation with them, you can help again. If you see messages 'update-menus failed', that's about the package 'menu', and 'update-menus' is called from a dpkg hook.

#cd /var/cache/apt/archives
#dpkg -i menu*
#dpkg -i python*

  • debsums does not work
In case you get errors because not working perl module MD5, which is actually a binary perl module, you can install it manually too. Sometimes a package reinstallation complains, because in the older packages some files belonged to another package and then dpkg don't want to overwrite them, you have to force it:

#cd /var/cache/apt/archives
#dpkg -i --force-overwrite perl*

  • reinstall of doc-base failed
Doc base uses ndbm database files (files.db and status.db) which are seemingly architecture specific. The update procedure of the 64-bit doc-base cannot read the remained 32-bit ones. Don't care, they will be regenerated if you delete them:

#cd /var/lib/doc-base/info
#rm files.db status.db

Resinstall all remained 32-bit packages


Sometimes after 'apt-get install -f' succeeds everything is done, your system is migrated. But sometimes a dozen of packages remains 32-bit. They either work (if they find their 32-bit libs) or not. But in any case it's better to reinstall them too. To list what packages are they do the following query:

dpkg-query -W -f '${Package} ${Architecture}\n' | awk '/i386$/ {print $1}'


I like this migration method also because at this point a lot of package could crop up which are not more exists (installed 5 years ago, not needed any more and you haven't even know what they are. You can purge them now gloatingly.
If you want to reinstall all i386 packages:

apt-get install `dpkg-query -W -f '${Package} ${Architecture}\n' | awk '/i386$/ {print $1}'`


But of course it will stop if there are no more existing packages. Then you can "apt-get purge" the really not needed ones, and try the reinstallation command again.
If you system do have tons of such not upgradable packages then you could find this procedure tiring, then you can decide you will care for them later, just the let upgradeable be upgraded, you can perform the command for each package separately:

for p in `dpkg-query -W -f '${Package} ${Architecture}\n' | awk '/i386$/ {print $1}'`
do
  apt-get -y install $p
done


it is slower (reads the apt db for every single package), but it skips the not upgradable ones.
And when you have time and are in the humor to entertain yourself with the remained i386 "what the hell are they" packages, you can list them with their description and judge on their life or death:

# dpkg-query -W -f '${Architecture} ${Package} ${Description}\n' | awk '/^i386/ {print; getline; for(;$0 ~ /^ /;getline) print; print "\n";}'
i386 pbzip2 parallel bzip2 implementation
 pbzip2 is a parallel implementation of the bzip2 block-sorting file
 compressor that uses pthreads and achieves near-linear speedup on SMP
 machines. The output of this version is fully compatible with bzip2
 v1.0.2 (ie: anything compressed with pbzip2 can be decompressed with
 bzip2).


i386 pcscd Middleware to access a smart card using PC/SC (daemon side)
 The purpose of PC/SC Lite is to provide a Windows(R) SCard interface
 in a very small form factor for communicating to smart cards and
 smart cards readers.
 .
 The PC/SC daemon is used to dynamically allocate/deallocate reader
 drivers at runtime and manage connections to the readers.
...
I've done this procedure many times beleive it or not, it's safe, real geeks could even enjoy it. And if you failed (but you would not!) then you could still install the system in the way you would done without this guide.

Friday, 3 February 2012

Buil Customs Kernel on Debian How to ??

Buil Customs Kernel on Debian How to ??

This Will Give U a Complete Procedure How To Compile Kernel on Debian on Right Way :

I give Wheezy Try :

If you're going to follow the procedures recommended in this document, your non-root user account must be enrolled in the "src" group.  For example,
 
          # mkdir /usr/src/build
          # mkdir /usr/src/build/kernel
# adduser fa src

Also, make sure that the directory /usr/src is owned by user root and by group src, and that the group has read and write privileges on the directory.  Execute privileges on the directory should be granted to all users (user, group, and other).  Also, make sure that the "set-group-ID" file mode bit is set for the directory.  This can be checked by issuing "ls -ld /usr/src".  The "s" flag will show in the output.  For example:
 
           $ ls -ld /usr/src drwxrwsr-x 3 root src 4096 Aug 24 13:52 /usr/src

The letter "s" in the seventh position of the file attributes indicates that the "set-group-ID" file mode bit is set for the directory.  This used to be the default, but on a recent install of Squeeze I've seen this change.  If it is not set, set it using the following command:
 
          #chgrp -R usr /usr/src
          # chmod g+s /usr/src
          #chmod -R g+w /usr/src
          #chown -R fa:src /usr/src/build/kernel -> change 'fa' with your own username

(Any changes to the privileges on the /usr/src directory must be done by root.)  Once you select a non-root user account for kernel-building purposes, you must use that same userid for all non-root steps.
Update The Sources.lit , Here My Example :

deb http://ftp.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.debian.org/debian/ wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

U can add the Mirror To add Faster Repository :
deb http://ftp.us.debian.org/debian wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian wheezy main non-free contrib
deb http://debian.corenetworks.net/debian/ wheezy main contrib non-free
deb-src http://debian.corenetworks.net/debian/ wheezy main contrib non-free
deb http://debian.mirrors.tds.net/debian/ wheezy main contrib non-free
deb-src http://debian.mirrors.tds.net/debian/ wheezy main contrib non-free
deb http://ftp.utexas.edu/debian/ wheezy main contrib non-free
deb-src http://ftp.utexas.edu/debian/ wheezy main contrib non-free
deb http://mirrors.xmission.com/debian/ wheezy main contrib non-free
deb-src http://mirrors.xmission.com/debian/ wheezy main contrib non-free


When mixing releases in the same system, it is important to define the default release.  You do this in /etc/apt/apt.conf.  Put a line such as the following in the above-named file:
 
APT::Default-Release "wheezy";
     Aptitude::Purge-Unused "true";
     
Then use :
 
#aptitude updade && aptitude full-upgrade
          #update-initramfs -u -k $(uname -r)

to install the updates.  If you are running the testing release or the unstable release, you should perform this procedure regularly, since updates are not generally announced.  When you are finished installing package updates, use 
 
#aptitude clean

Got The Source From Here :

$cd /usr/src
$links http://www.kernel.org/

choose  the kernel version you need, grab it with push 'D'

untar it, i use kernel 3.2.2 , so the command wil be :

tar -xjf linux-source-3.2.2.tar.bz2

Do this step as root.  If you have not already done so, install the "kernel-package" package.  You can check to see if it is already installed by using
 
dpkg-query -l kernel-package|grep ii
If it is not already installed, install it. 
 
aptitude install kernel-package

Read the README file for kernel-package.
 
zless /usr/share/doc/kernel-package/README.gz

At the time of this writing, the following packages will be required for the menuconfig method under Debian Squeeze:
 
gcc
     libc6-dev
     bin86 (i386 and amd64 architectures only)
     libncurses5-dev
     binutils
     make
     module-init-tools
     mawk | gawk
     gzip
     coreutils
     grep
     zlib1g-dev (if CONFIG_LGUEST is set)
     fakeroot (if building the kernel as a non-root user)

Many of these packages will already be installed.  To check to see if these packages are installed, use dpkg-query.  For example:
 
dpkg-query -l gcc|grep ii

Install those packages which you need with "aptitude install".  For example:
 
aptitude install bin86 libncurses5-dev zlib1g-dev fakeroot && aptitude clean

There may also be some packages needed to install the kernel image package once it has been built.  For example, you may need initramfs-tools to build the initial RAM file system image file during kernel image package installation.  (But it should be installed already.)

At this point I recommend that you edit the kernel-package config file (/etc/kernel-pkg.conf) and change the "maintainer" and "email" tags to your own name and e-mail address.

No need for the patch since we use 64 kernel, i think so :
but if you are using 32 bit , you wiill need it for patch the Doumentation.

No apply the patch, issue the following sequence of commands:
 
cd /usr/share/kernel-package
     ... (download the patch file to the current directory)
     patch -p1 <patch3xx.diff

Configure The Kernel :

Do this step as a non-root user.  Use the same userid for all non-root steps.  The non-root user must be a member of group "src".  First, change directories to the home directory for the source code.
 
cd /usr/src/build/kernel/linux-source-3.2.2

Now, initialize the .config file based on the configuration file used by the stock Debian kernel.
 
cp /boot/config-2.6.32-5-686 .config

This means that if you make no changes, your custom kernel will be configured exactly like the stock Debian kernel.  Obviously, adjust the name of the config file to copy based on your architecture and kernel release.  The file you need will start with "config" and will have your kernel version name in it.
Now it's time to configure the kernel:
 
make menuconfig

OK, with all that said, we are ready to start issuing commands.  If you are running Lenny (or previous releases), issue the following command:
 
make-kpkg clean

Under Lenny and previous releases it is necessary to run make-kpkg with the "clean" target after each invocation of "make menuconfig" (or any *config target, actually).  Otherwise, the --append-to-version and/or the --revision flags won't work properly.  If you are running Squeeze or later releases, the above command may be omitted.  (But if you do run it under Squeeze and later releases, it won't do any harm.)  Now issue the following command to build the package(s):

This For Debian Kernel Ways : ( If you download it from Debian Repository) :
 
time CONCURRENCY_LEVEL=8 make-kpkg --append-to-version -5custom1-686 --revision 2.6.32-38 --initrd --rootcmd fakeroot kernel_image modules_image
And This For My Own Ways, since it from Kernel Source :

CONCURRENCY_LEVEL=8 fakeroot make-kpkg --append-to-version -2fa4-666 --revision 7.5.88-1 --initrd kernel_image kernel_headers

Even if you are running Squeeze or later I suggest that you read this section because material covered here is assumed as background knowledge in later sections.
The /etc/kernel-img.conf file for a default Lenny installation on the i386 architecture with the grub version 1 boot loader (the default) looks something like this:
 
# Kernel image management overrides
     # See kernel-img.conf(5) for details
     do_symlinks = yes
     relative_links = yes
     do_bootloader = no
     do_bootfloppy = no
     do_initrd = yes
     link_in_boot = no
     postinst_hook = update-grub
     postrm_hook   = update-grub


Now We Already Have a new kernel, it;s time to install it :
Do this step as root.  OK, now it's time to actually install the kernel image package.  You won't use aptitude or apt-get to install the kernel image package.  That is due to the fact that it doesn't have to be fetched from anywhere.  Instead, use the low-level package tool dpkg.
 
cd /usr/src dpkg -i linux-image-2fa4-666_7.5.88-1_amd64.deb

Do this step as root.  Shutdown and reboot to run your new custom kernel!
 
shutdown -F -r now;exit

Now i't time to clean up home :
Do this step as a non-root user.  Use the same userid for all non-root steps.  The non-root user must be a member of group "src".  Once the new kernel image package has been installed, you can delete the package file (.deb file). 
 
#cd /usr/src/build/kernel
#rm linux-image-2.6.32-5custom1-686_2.6.32-38_i386.deb
If you have also installed one or more modules image packages, you can delete their package files too.  The same goes for a linux-headers-* package.

Clean Up :
Do this step as root.  Once you are satisfied with the new kernel, you may wish to de-install the old kernel image package.  I like to keep at least one back version unless I know that the old kernel will no longer work due to changes made since migrating to the new kernel.  For example, if my system now depends on a kernel module that did not exist in the old kernel, there's not much point in keeping the old kernel around.
 
aptitude purge linux-image-2.6.32-5-686

Done.,
:)

Thursday, 2 February 2012

Move /home to it’s own partition Debian

First, create a partition of sufficient size for your “/home” directory. You may have to use that new hard drive, or adjust/resize the existing partition on your current hard-drive to do this. Let me skip those details.
Next, mount the new partition:

$mkdir /mnt/newhome
$sudo mount -t ext3 /dev/hda5 /mnt/newhome


(You have to change the “hda5″ in the above to the correct partition label for the new partition. Also, the above assumes that the new partition you created is formatted as an ext3 partition. Change the “ext3″ to whatever filesystem the drive is formatted to.)
Now, Copy files over:
Since the “/home” directory will have hardlinks, softlinks, files and nested directories, a regular copy (cp) may not do the job completely. Therefore, we use something we learn from the Debian archiving guide:

$cd /home/
$find . -depth -print0 | cpio --null --sparse -pvd /mnt/newhome/


Make sure everything copied over correctly. You might have to do some tweaking and honing to make sure you get it all right, just in case.
Next, unmount the new partition:

$sudo umount /mnt/newhome


Make way for the new “home”

$sudo mv /home /old_home

Since we moved /home to /old_home, there is no longer a /home directory. So first we should recreate a new /home by:

sudo mkdir /home


Mount the new home:

$sudo mount /dev/hda5 /home


(Again, you have to change “hda5″ to whatever the new partition’s label is.)
Cursorily verify that everything works right.
Now, you have to tell Debian to mount your new home when you boot. Add a line to the “/etc/fstab” file that looks like the following:

/dev/hda5 /home ext3 nodev,nosuid 0 2


(Here, change the partition label “hda5″ to the label of the new partition, and you may have to change “ext3″ to whatever filesystem you chose for your new “home”)
Once all this is done, and everything works fine, you can delete the “/old_home” directory by using:

$sudo rm -r /old_home


This for Complete Task :

Use the following
mkdir /mnt/newhome
sudo mount -t ext3 /dev/sda10 /mnt/newhome
cd /home/
find . -depth -print0 | cpio --null --sparse -pvd /mnt/newhome/
Next, unmount the new partition:
sudo umount /mnt/newhome
Then make way to the new home
sudo mv /home /old_home
sudo mkdir /home
Mount the new home:
sudo mount /dev/sda10 /home
Now, you have to tell Debian to mount your new home when you boot. Add a line to the “/etc/fstab” file that looks like the following:
/dev/hda5 /home ext3 nodev,nosuid 0 2
Sudo rm -r /old_home

Debian is Easy Ways

i will not going to tell everything just the point :
First Download Package, install it using usb ( of course all of u can do that, choose to and unchechk all system., after finished upgrade it and run full-upgrade)

This this the point :

Insert this  file on your /etc/apt/apt.conf.d/ and name it with what u need, i just name it with 24sinconf :
// My Config
// Angel DeChaos.
// Don't Edit this
APT::Default-Release "wheezy";
Debug::pkgProblemsResolver= "yes";
Aptitude::Purge-Unused "true";
APT::Get::Purge;
APT::Cache-Limit= "25165824";
APT::Install-Recommends "false";
Acquire::http::Timeout "24";
Acquire::ftp::Timeout "24";

then for /etc/apt/preferences.d  named it with 96sinprefs
Package: *
Pin: release o=Debian,a=wheezy,c=main,c=non-free,c=contrib,l=Debian
Pin-Priority: 1002

Package: *
Pin: origin "security.debian.org"
Pin-Priority: 1001

Package: *
Pin: release a=wheezy-proposed-updates
Pin-Priority: 700

Package: *
Pin: origin "www.debian-multimedia.org"
Pin-Priority: 650

Package: *
Pin: release a=squeeze,c=main,c=contrib,c=non-free,o=Debian,l=Debian
Pin-Priorhty: 450

Package: *
Pin: release a=squeeze-updates
Pin-Priority: 400

Package: *
Pin: release a=squeeze-backports
Pin-Priority: 350

Package: *
Pin: release a=lenny,c=main,c=non-free,c=contrib,o=Debian,l=Debian
Pin-Priority: 200

Package: *
Pin: origin "64.repository.backtrack-linux.org"
Pin-Priority: 200

Package: *
Pin: origin "all.repository.backtrack-linux.org"
Pin-Priority: 200

Package: *
Pin: origin "source.repository.backtrack-linux.org"
Pin-Priority: 200

Package: *
Pin: release a=sarge
Pin-Priority: 150

Package: *
Pin: release a=etch
Pin-Priority: 100

Package: *
Pin: release o=Debian
Pin-Priority: -1

and for /etc/apt/sources.list.d i call it 01main.list
## Angel Sources.list
## Code main
deb http://ftp.debian.org/debian/ lenny main non-free contrib
deb http://ftp.us.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.us.debian.org/debian/ squeeze main non-free contrib
deb http://debian.corenetworks.net/debian/ squeeze main contrib non-free
deb-src http://debian.corenetworks.net/debian/ squeeze main contrib non-free
deb http://debian.mirrors.tds.net/debian/ squeeze main contrib non-free
deb-src http://debian.mirrors.tds.net/debian/ squeeze main contrib non-free
deb http://mirrors.kernel.org/debian/ squeeze main contrib non-free
deb-src http://mirrors.kernel.org/debian/ squeeze main contrib non-free
deb http://debian.securedservers.com/debian/ squeeze main contrib non-free
deb-src http://debian.securedservers.com/debian/ squeeze main contrib non-free
deb http://ftp.utexas.edu/debian/ squeeze main contrib non-free
deb-src http://ftp.utexas.edu/debian/ squeeze main contrib non-free
deb http://mirrors.gigenet.com/debian/ squeeze main contrib non-free
deb-src http://mirrors.gigenet.com/debian/ squeeze main contrib non-free
deb http://mirrors.xmission.com/debian/ squeeze main contrib non-free
deb-src http://mirrors.xmission.com/debian/ squeeze main contrib non-free
deb http://ftp.us.debian.org/debian wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian wheezy main non-free contrib
deb http://debian.corenetworks.net/debian/ wheezy main contrib non-free
deb-src http://debian.corenetworks.net/debian/ wheezy main contrib non-free
deb http://debian.mirrors.tds.net/debian/ wheezy main contrib non-free
deb-src http://debian.mirrors.tds.net/debian/ wheezy main contrib non-free
deb http://ftp.utexas.edu/debian/ wheezy main contrib non-free
deb-src http://ftp.utexas.edu/debian/ wheezy main contrib non-free
deb http://mirrors.xmission.com/debian/ wheezy main contrib non-free
deb-src http://mirrors.xmission.com/debian/ wheezy main contrib non-free
deb http://linux.dropbox.com/debian wheezy main
deb http://www.debian-multimedia.org/ wheezy main non-free
deb http://mozilla.debian.net/ wheezy iceweasel-release
deb http://linux.dropbox.com/debian squeeze main
deb http://www.debian-multimedia.org/ squeeze main non-free
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release
deb-src http://ftp.debian.org/debian/ lenny main non-free contrib
deb http://archive.debian.org/debian/ sarge main non-free contrib
deb-src http://archive.debian.org/debian/ sarge main non-free contrib
deb http://archive.debian.org/debian/ etch main non-free contrib
deb-src http://archive.debian.org/debian/ etch main non-free contrib
deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib
deb http://ftp.debian.org/debian/ squeeze-updates main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze-updates main non-free contrib
deb http://backports.debian.org/debian-backports/ squeeze-backports main non-free contrib
deb-src http://backports.debian.org/debian-backports/ squeeze-backports main non-free contrib
deb http://linux.dropbox.com/debian squeeze main
deb http://www.debian-multimedia.org/ squeeze main non-free
deb http://mozilla.debian.net/ squeeze-backports iceweasel-release
deb http://ftp.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.debian.org/debian/ wheezy main non-free contrib
deb http://ftp.debian.org/debian wheezy-proposed-updates main non-free contrib
deb-src http://ftp.debian.org/debian wheezy-proposed-updates main non-free contrib
deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib
deb http://linux.dropbox.com/debian wheezy main
deb http://www.debian-multimedia.org/ wheezy main non-free
deb http://mozilla.debian.net/ wheezy iceweasel-release
deb http://ftp.us.debian.org/debian wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian wheezy main non-free contrib
deb http://debian.corenetworks.net/debian/ wheezy main contrib non-free
deb-src http://debian.corenetworks.net/debian/ wheezy main contrib non-free
deb http://debian.mirrors.tds.net/debian/ wheezy main contrib non-free
deb-src http://debian.mirrors.tds.net/debian/ wheezy main contrib non-free
deb http://ftp.utexas.edu/debian/ wheezy main contrib non-free
deb-src http://ftp.utexas.edu/debian/ wheezy main contrib non-free
deb http://mirrors.xmission.com/debian/ wheezy main contrib non-free
deb-src http://mirrors.xmission.com/debian/ wheezy main contrib non-free
deb http://ftp.us.debian.org/debian wheezy-proposed-updates main non-free contrib
deb-src http://ftp.us.debian.org/debian wheezy-proposed-updates main non-free contrib 

deb http://all.repository.backtrack-linux.org revolution main microverse non-free testing
deb http://64.repository.backtrack-linux.org revolution main microverse non-free testing 
deb http://source.repository.backtrack-linux.org revolution main microverse non-free testing

Gentoo Linux amd64 Quick Install Guide

Content: You must read Stage 1 as wellYou will have more information on Gentooo Forums.
Introduction
This guide contains all the commands you should use to complete a stage3 installation of Gentoo. You need a connection to the Internet to download the stage3 and Portage snapshots.
Important: New users should read the Handbook as it gives a better overview about the installation process. The Quick Install guide is designed for experienced users who just need a checklist to follow.
Timing output follows all commands that take more than a couple of seconds to finish. Commands were timed on an AMD 2000 1.66 Ghz PC with 512 MB of RAM and two SATA disks connected to a hardware controller.
*
Code Listing 1.1: Test box specs
(The following specs and the timing information should help you determine
a rough estimate of the time you need to complete your install)

# grep bogo /proc/cpuinfo
bogomips       : 3337.81

# hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   1100 MB in  2.00 seconds = 549.97 MB/sec
 Timing buffered disk reads:  224 MB in  3.01 seconds =  74.36 MB/sec

# grep MemTotal /proc/meminfo
MemTotal:       509248 kB
Quick Install Guide
Installation Media
Download a CD from one of our mirrors. You can find the minimal CD ISO in releases/x86/current-iso/. The minimal installation CD is only useful for Internet-based installations. This guide will use the minimal CD.
Burn the CD and boot it.
Booting the CD
Press F2 at the boot screen to find out what boot options exist. You can either start gentoo or gentoo-nofb, the latter disables the framebuffer. If you booted the LiveCD, don't forget to add the nox option to prevent the X graphical environment from starting. Several options allow to enable or disable some features. If all goes well, your hardware will be detected and all modules will be loaded. If the kernel fails to boot properly or if your computer hangs during the boot procedure, you may have to experiment with different configurations. The safest way is probably to use the nodetect option and then load required modules explicitly.
Code Listing 2.1: Boot the minimal CD
Gentoo Linux Installation LiveCD                     http://www.gentoo.org
Enter to Boot; F1 for kernels  F2 for options.
boot: gentoo-nofb
  (or in case of problems)
boot: gentoo-nofb nodetect  -> i suggests don't use it, since you're noobs, it"ll confusing you and make a headache., jajajjajajajajjajaaaaaaaaaaaa if u prefer to use this I suggests u need install this first
Optional: loading modules
If you used the nodetect option, once booted, load the required modules. You need to enable networking and have access to your disks. The lspci command can help you identify your hardware.
Code Listing 2.2: Load required modules
livecd root # lspci
(Use lspci's output to identify required modules)

(The following is an example, adapt it to your hardware)
livecd root # modprobe 3w-9xxx
livecd root # modprobe r8169
Network Configuration
If your network does not work already, you can use net-setup to configure your network. You might need to load support for your network card using modprobe prior to the configuration. If you have ADSL, use pppoe-setup and pppoe-start. For PPTP support, first edit /etc/ppp/chap-secrets and /etc/ppp/options.pptp and then use pptp <server ip>.
For wireless access, use iwconfig to set the wireless parameters and then use either net-setup again or run ifconfig, dhcpcd and/or route manually.
If you are behind a proxy, do not forget to initialize your system using export http_proxy, ftp_proxy and RSYNC_PROXY.
;div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: `uto; mso-margin-top-alt: auto;">
Code Listing 2.3: Configure networking the guided way
livecd root # net-setup eth0
Alternatively, you can start networking manually. The following example assigns the IP address 192.168.1.10 to your PC and defines 192.168.1.1 as your router and name server.
Code Listing 2.4: Configure networking the manual way
livecd root # ifconfig eth0 192.168.1.10/24
livecd root # route add default gw 192.168.1.1
livecd root # echo nameserver 192.168.1.1 > /etc/resolv.conf
The installation CD allows you to start an sshd server, add additional users, run irssi (a command-line chat client) and surf the web using links.
Optional: connect to your new box over ssh
The most interesting feature is of cnurse sshd. You can start it and then connect from another machine and cut and paste commands from this guide.
Code Listing 2.5: Start sshd
livecd root # time /etc/init.d/sshd start
 * Generating hostkey ...
(sshd generates the key and displays more output)
 * starting sshd ...                            [ok]

real   0m13.688s
user   0m9.420s
sys    0m0.090s
Now, set the root password on the liveCD so that you can connect to it from another PC. Please note that allowing root to connect over ssh is not recommended under normal circumstances. If you can't trust your local network, use a long and complex password, you should use it only once as it will disappear after your first reboot.

Code Listing 2.6: Set the root password
livecd root # passwd
New UNIX password: type_a_password
Retype new UNIX password: type_a_password
passwd: password updated successfully

Now, you can start a terminal on another PC and connect to your new box, follow the rest of this guide in another window, and cut and paste commands.
Code Listing 2.7: Connect to your new box from another PC
(Use the IP address of your new box)
$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.
Password: type_the_password
Preparing the Disks
Use fdisk or cfdisk to create your partition layout. You need at least a swap partition (type 82) and one Linux partition (type 83). The following scenario creates a /boot, a swap and a main partition as used in our handbook. Replace sda with your disk. Most systems ignore the bootable flag, but a few need it. Set this flag on your boot partition with fdisk's a command.
Code Listing 2.8: Create the partitions
livecd ~ # fdisk /dev/sda

(The rest of this guide uses the following partitioning scheme)
livecd ~ # fdisk -l /dev/sda

Disk /dev/sda: 599.9 GB, 599978409984 bytes
255 heads, 63 sectors/track, 72943 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          12       96358+  83  Linux
/dev/sda2              13         110      787185   82  Linux swap / Solaris
/dev/sda3             111       72943   585031072+  83  Linux
Use mke2fs, mke2fs -j, mkreiserfs, mkfs.xfs and mkfs.jfs to create file systems on your Linux partitions. Initialize your swap partition using mkswap and swapon.
Code Listing 2.9: Create the file systems and activate swap
(ext2 is all you need on the /boot partition)
livecd ~ # mke2fs /dev/sda1

(Let's use ext3 on the main partition)
livecd ~ # mke2fs -j /dev/sda3

(Create and activate swap)
livecd ~ # mkswap /dev/sda2 && swapon /dev/sda2
Mount the freshly created file systems on /mnt/gentoo. Create directories for the other mount points (like /mnt/gentoo/boot) if you need them and mount them too.
Code Listing 2.10: Mount the file systems
livecd ~ # mount /dev/sda3 /mnt/gentoo
livecd ~ # mkdir /mnt/gentoo/boot
livecd ~ # mount /dev/sda1 /mnt/gentoo/boot
livecd ~ # cd /mnt/gentoo
Setting Up The Stage
First make sure your date and time is set correctly using date MMDDhhmmYYYY. Use UTC time.
Code Listing 2.11$3A Set the date and UTC time
(Check the clock)
livecd gentoo # date
Mon Mar  6 00:14:13 UTC 2006

(Set the current date and time if required)
livecd gentoo # date 030600162006 (Format is MMDDhhmmYYYY)
Mon Mar  6 00:16:00 UTC 2006
Next, download a stage from one of our mirrors:
Code Listing 2.12: Download a stage3 archive
livecd gentoo # links http://www.gentoo.org/main/en/mirrors.xml
(Pick a mirror, move to the releases/x86/current-stage3/ directory,
highlight the stage3 of your choice, probably the i686 stage3, and press D to
download it)

(Or download it directly with wget without choosing a nearby mirror)
livecd gentoo # wget http://mirror.mcs.anl.gov/pub/gentoo/releases/amd64/current-stage3/stage3-amd64-20120126.tar.bz2
Go to /mnt/gentoo and unpack the stage using tar xjpf <stage3 tarball>.
Code Listing 2.13: Unpack the stage3 archive
livecd gentoo # time tar xjpf stage3*

real  1m14.157s
user  1m2.920s
sys   0m7.530s
Install the latest Portage snapshot. Proceed as for the stage3 archive: choose a nearby mirror from our list, download the latest snapshot and unpack it.
Code Listing 2.14: Download the latest Portage snapshot
livecd gentoo # cd /mnt/gentoo/usr
livecd usr # links http://www.gentoo.org/main/en/mirrors.xml
(Pick a mirror, move to the snapshots/ directory,
highlight portage-latest.tar.bz2 and press D to download it)

(Or download it directly with wget without choosing a nearby mirror)
livecd gentoo # cd /mnt/gentoo/usr
livecd usr # wget http://mirror.mcs.anl.gov/pub/gentoo/snapshots/portage-latest.tar.bz2

Code Listing 2.15: Unpack the Portage snapshot
livecd usr # time tar xjf portage-lat*

real  0m40.523s
user  0m28.280s
sys   0m8.240s
Chrooting
Mount the /proc & /dev file systems, copy over the /etc/resolv.conf file, then chroot into your Gentoo environment.
Code Listing 2.16: Chroot
livecd usr # cd /
livecd / # mount -t proc proc /mnt/gentoo/proc
livecd / # mount --rbind /dev /mnt/gentoo/dev
livecd / # cp -L /etc/resolv.conf /mnt/gentoo/etc/
livecd / # chroot /mnt/gentoo /bin/bash
livecd / # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...
Set your time zone
Set your time zone information by using the correct listing in /usr/share/zoneinfo.
Code Listing 2.17: Setting your timezone
livecd / # ls /usr/share/zoneinfo
(Using Brussels as an example)
livecd / # cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime

livecd / # date
Wed Mar  8 00:46:05 CET 2006
Set your host name and domain name
Set your host name in /etc/conf.d/hostname and /etc/hosts. In the following example, we use mybox as host name and at.myplace as domain name. You can either edit the config files with nano or use the following commands:
Code Listing 2.18: Set host and domain name
livecd / # cd /etc
livecd etc # echo "127.0.0.1 mybox.at.myplace mybox localhost" > hosts
livecd etc # sed -i -e 's/HOSTNAME.*/HOSTNAME="mybox"/' conf.d/hostname
(Use defined host name and check)
livecd etc # hostname mybox
livecd etc # hostname -f
mybox.at.myplace
Kernel Configuration
Install a kernel source (usually gentoo-sources), configure it, compile it and copy the arch/i386/boot/bzImage file to /boot.
Code Listing 2.19: Install a kernel source, compile it and install the kernel
livecd etc # time emerge gentoo-sources

real  2m51.435s
user  0m58.220s
sys   0m29.890s
livecd etc # cd /usr/src/linux
livecd linux # make menuconfig
(Configure your kernel)
livecd linux # time make -j2

(Elapsed time depends highly on the options you selected)
real  3m51.962s
user  3m27.060s
sys   0m24.310s

livecd linux # make modules_install
livecd linux # cp arch/i386/boot/bzImage /boot/kernel
Configure the system
Edit your /etc/fstab and replace BOOT, ROOT and SWAP with the actual partition names. Don't forget to check that the file systems match your installation.
Code Listing 2.20: Example fstab
livecd linux # cd /etc
livecd etc # nano -w fstab
/dev/sda1   /boot     ext2    noauto,noatime     1 2
/dev/sda3   /         ext3    noatime            0 1
/dev/sda2   none      swap    sw                 0 0
Configure your network in /etc/conf.d/net. Add the net.eth0 init script to the default run level. If you have multiple NICs, symlink them to the net.eth0 init script and add them to the default run level as well. Don't forget to set your hostname too. Either edit /etc/conf.d/net and /etc/conf.d/hostname with nano or use the following commands:
Code Listing 2.21: Configure networking
livecd etc # cd init.d
livebd init.d # ln -s net.lo net.eth0
livecd init.d # cd ../conf.d
livecd conf.d # echo 'config_eth0="192.168.1.10 netmask 255.255.255.0 brd 192.168.1.255"' >> net
livecd conf.d # echo 'routes_eth0="default via 192.168.1.1"' >> net
livecd conf.d # echo 'hostname="myhostname"' > hostname
livecd conf.d # rc-update add net.eth0 default
(If you compiled your network card driver as a module, add it to /etc/conf.d/modules
livecd conf.d # echo 'modules="r8169"' >> /etc/conf.d/modules
(If you want to reconnect via ssh after you have rebooted your new box)
livecd conf.d # rc-update add sshd default

Note: Emerge pcmciautils if you need support for PCMCIA cards.
Set the root password using passwd.
Code Listing 2.22: Set the root password
livecd conf.d # passwd
New UNIX password: type_the_password
Retype new UNIX password: type_the_password_again
passwd: password updated successfully
Edit /etc/timezone to define the time zone you used previously.
Code Listing 2.23: Edit /etc/timezone
Europe/Brussels
Check the system configuration in /etc/rc.conf and /etc/conf.d/keymaps and edit any of those files if required.
Code Listing 2.24: Optional: edit some config files
livecd conf.d # nano -w /etc/rc.conf
livecd conf.d # nano -w /etc/conf.d/keymaps
Installing System Tools
Install a system logger like syslog-ng and a cron daemon like vixie-cron, and add them to the default run level.
Note: Cron daemons depend on an MTA. mail-mta/ssmtp will be pulled in as a dependency. If you want to use a more advanced MTA, you might want to install it now. If you are in a hurry, let ssmtp be installed and remove it later when you install the MTA of your choice.

Code Listing 2.25: Install a syslogger and a cron daemon
livecd conf.d # time emerge syslog-ng vixie-cron

real  1m54.099s
user  1m2.630s
sys   0m34.620s
livecd conf.d # rc-update add syslog-ng default
livecd conf.d # rc-update add vixie-cron default
Install the necessary file system tools (xfsprogs, reiserfsprogs or jfsutils) and networking tools (dhcpcd or ppp) if you need any.
Code Listing 2.26: Install extra tools if required
livecd conf.d # emerge xfsprogs       (If you use the XFS file system)
livecd conf.d # emerge jfsutils       (If you use the JFS file system)
livecd conf.d # emerge reiserfsprogs  (If you use the Reiser file system)
livecd conf.d # emerge dhcpcd         (If you need a DHCP client)
livecd conf.d # emerge ppp            (If you need PPPoE ADSL connectivity)
Configuring the Bootloader
Emerge grub and configure it. Do not forget to update the necessary boot parameters if you are using an initramfs.
,div class="MsoNormal" style="line-height: normal; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
Code Listing 2.27: Emerge grub and edit its configuration file
livecd conf.d # time emerge grub

real  1m4.634s
user  0m39.460s
sys   0m15.280s
livecd conf.d # nano -w /boot/grub/grub.conf

Code Listing 2.28: Example grub.conf
default 0
timeout 10

title Gentoo
root (hd0,0)
kernel /boot/kernel root=/dev/sda3

Code Listing 2.29: Install grub
livecd conf.d # grub
Probing devices to guess BIOS drives. This may take a long time.

grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0xfd

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  16 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,0)/boot/grub/stage2 /boot/
grub/menu.lst"... succeeded
Done.

grub> quit
Reboot
Exit the chrooted environment, unmount all file systems and reboot:
Code Listing 2.30: Reboot
livecd conf.d # exit
livecd / # umount -l /mnt/gentoo/dev{/shm,/pts,}
livecd / # umount -l /mnt/gentoo{/proc,/boot,}
livecd / # reboot
(Don't forget to remove the CD)
Finalizing the Installation
Note: The total elapsed time between the display of the boot prompt on the minimal CD and the display of the login prompt after the reboot was 00:42:31 on our test box. Yes, less than one hour! Note that this time also includes the stage3, Portage snapshot and several packages download time and the time spent configuring the kernel.
Log in as root, then add one or more users for daily use with useradd.
Code Listing 2.31: Connect to your new box from another PC
(Clean up your known_hosts file because your new box
has generated a new definitive hostkey)
$ nano -w ~/.ssh/known_hosts
(Look for the IP of your new PC and delete the line,
then save the file and exit nano)

(Use the IP address of your new box)
$ ssh root@192.168.1.10
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established.
RSA key fingerprint is 96:e7:2d:12:ac:9c:b0:94:90:9f:40:89:b0:45:26:8f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.10' (RSA) to the list of known hosts.
Password: type_the_password

Code Listing 2.32: Add a new user
mybox ~ # useradd -g users -G lp,wheel,audio,cdrom,portage,cron -m john
mybox ~ # passwd john
New UNIX password: Set John's password
Retype new UNIX password: Type John's password again
passwd: password updated successfully
Last configuration touches
Start by selecting nearby mirrors either by defining the SYNC and GENTOO_MIRRORS variables in /etc/make.conf or by using mirrorselect. You can also define the number of concurrent compilation processes at this point.
Code Listing 2.33: Use mirrorselect and set MAKEOPTS
mybox ~ # emerge mirrorselect
mybox ~ # mirrorselect -i -o >> /etc/make.conf
mybox ~ # mirrorselect -i -r -o >> /etc/make.conf
(Usually, (the number of processors + 1) is a good value)
mybox ~ # echo 'MAKEOPTS="-j2"' >> /etc/make.conf
Now is a good time to enable or disable some USE flags. Run emerge -vpe world to list all currently installed packages and their enabled and disabled USE flags. Either edit /etc/make.conf or use the following command to define the USE variable:
Code Listing 2.34: View USE flags in use and enable or disable some
mybox ~ # emerge -vpe world
(Portage displays the packages and their USE flags, as an example, let's
disable fortran, and enable ipv6 and unicode)
mybox ~ # echo 'USE="nptl nptlonly ipv6 -fortran unicode"' >> /etc/make.conf
Recent versions of glibc use /etc/locale.gen to define locale settings.
Code Listing 2.35: Define locales
mybox ~ # cd /etc
mybox etc # nano -w locale.gen
mybox etc # locale-gen
Last but not least, you may want to alter the CFLAGS variable in your /etc/make.conf to optimise the code to your specific needs. Please note that using a long list of flags is rarely needed and can even lead to a broken system. It is recommended to specify the processor type in the march option and stick to -O2 -pipe.
You may also want to switch to ~x86. You should only do this if you can deal with the odd broken ebuild or package. If you'd rather keep your system stable, don't add the ACCEPT_KEYWORDS variable.
Code Listing 2.36: Last edit of make.conf
mybox etc # nano -w make.conf
(Set -march to your CPU type in CFLAGS)
CFLAGS="-O2 -march=athlon-xp -pipe"
(Only add the following if you know what you're doing)
ACCEPT_KEYWORDS="~x86"
You might want to recompile your whole system twice to make full use of your latest configuration changes. It would take quite a long time to complete and yield minimal speed benefits. You can let your system optimise itself gradually over time when new versions of packages are released. However, recompiling is a still good idea from the standpoint of maintaining system consistency. Please see the Gentoo GCC Upgrading Guide for a discussion on the benefits of ensuring a consistently built system and world.
Recompiling only the packages that have already been updated since the release or that are affected by your new USE flags will take enough time. You might also have to remove packages that block your upgrade. Look for "[blocks B ]" in the output of emerge -vpuD --newuse world and use emerge -C to remove them.
Code Listing 2.37: Update your packages
(Please note that the switch to ~x86 causes many packages to be upgraded)
mybox etc # emerge -vpuD --newuse world
(Take a good look at the package list and their USE flags,
remove blocking packages if any, and start the lengthy process)
mybox etc # time emerge -vuD --newuse world
(79 packages have been (re)compiled)

real  180m13.276s
user  121m22.905s
sys   36m31.472s

(Remerge libtool to avoid further potential problems)
mybox etc # emerge --oneshot libtool

(Update config files, make sure you do not let dispatch-conf
update config files you have edited)
mybox etc # dispatch-conf

(If perl has been updated, you should run the perl-cleaner script)
mybox etc # time perl-cleaner all
real  1m6.495s
user  0m42.699s
sys   0m10.641s

(In case of a major upgrade of python, you should run the python-updater script)
mybox etc # python-updater
Depending on what your new Gentoo machine is supposed to do, you will probably want to install server applications or a desktop system. Just as an example, emerge gnome and emerge kde have been timed on the ~x86 system installed as describe above. Both have been installed from the same starting point.
You should check our documentation index to find out how to install and configure the applications of your choice.
Important: The following is only an example. It is in no way meant as a recommended setup.

Code Listing 2.38: Emerge GNOME
mybox etc # emerge -vp gnome
(Look at the list of packages and their USE flags,
then edit make.conf if required.
mybox etc # nano -w /etc/make.conf
(The following USE flags have been defined)
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
     -kde -qt4 -arts -eds -esd gnome gstreamer gtk firefox"

mybox etc # time emerge gnome
(326 packages have been emerged)

real  520m44.532s
user  339m21.144s
sys   146m22.337s

Code Listing 2.39: Emerge KDE
mybox etc # emerge -vp kde-meta
(Look at the list of packages and their USE flags,
then edit make.conf if required.
mybox etc # nano -w /etc/make.conf
The following USE flags have been defined)
USE="nptl nptlonly -ipv6 -fortran unicode svg hal dbus \
     kde qt4 -arts -eds -esd -gnome -gstreamer -gtk -firefox"

mybox etc # time emerge kde-meta
(391 packages have been emerged)

real  1171m25.318s
user  851m26.393s
sys   281m45.629s