Gentoo
Gentoo是一个基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点。 Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西——你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版
简介
Gentoo已经停止发布新的编译版,最近一次发布的是10.0,之所以发行是为了纪念发行十周年。之所以不发行编译版,是因为没有这个必要,Gentoo不提供传统意义的安装程序,他的安装CD只是提供一个Linux环境,从分区,挂载硬盘,下载编译内核,书写Grub等等都需要手动命令行一步步来。复杂的安装过程往往会让很多新手觉得沮丧,但是它确实能更好的帮你了解Linux的构建。
当然,Gentoo的意义不仅仅在于它所提供的软件。它是围绕着一个发行版建立起来的社区,由300多名开发人员和数以千记的用户共同驱动。发行版项目为用户提供各种途径来享用Gentoo: 文档、基础设施 (邮件列表、站点、论坛……) 、版本发布工程、软件移植、质量保证、安全跟进、强化等等。
为了商讨和协助Gentoo的全局开发,每年推选出一个7人议会,对Gentoo项目中的全局性问题、方针政策和发展进步做出决定。
核心
Portage是Gentoo的核心,履行许多关键的职责。其一,Portage是Gentoo的软件发行系统。Gentoo
下要获取最新的软件,打一个命令: emerge-sync。这个命令告诉Portage从网上更新你本地的"Portage树"。本地Portage树包含一份完整的脚本集合,Portage以之创建和安装最新的Gentoo软件包。当前,我们的Portage树中拥有超过10000个软件包,软件包更新和新软件包每时每刻都在加入中。Portage也是一个软件包构建和安装系统。当你想安装一个软件包时,你输入"emerge 软件包名",此时Portage按照你作的具体配置自动构建一个软件包的定制版本。请根据自己的硬件优化配置,确保启用了软件包中你想要的一些可选特性——同时确保未启用那些你不想要的。
Portage还使系统保持在持续更新状态。输入emerge -uDN world——一个命令——能确保系统中你想要的所有软件包得到自动更新。
优点
与大多数GNU/Linux发行版本不同,Gentoo Linux为用户提供了大量的应用程序源代码。Gentoo Linux的每一部分都可以在最终用户的系统上重新编译建造,甚至包括最基本的系统库和编译器自身。 通过依赖关系描述和源代码镜像的形式提供软件,Gentoo Linux提供了大量软件供用户选择。 标准的源代码镜像包括30G的数据。 选择不仅在软件整体方面,也存在于软件的内部。由于可以在本地编译软件,参数和变量的选择可以由用户自己指定。
指定参数的优势不仅在于用户了解了设置,更多是增加了针对硬件进行性能提升的余地。 而且用户可以使用自己喜欢的补丁或插件对软件功能进行调整,比如当前的Gentoo Linux内核发布包括35种。
由于系统及应用软件的安装方法差异显著,Gentoo Linux社区对安装内容的探讨相当深入。即便不使用 Gentoo Linux的用户也可以通过了解参数选择明白软件内部的设定。应用软件的配置设定都记录在ebuild文件中,由ebuild、emerge命令管理。
gentoo
mount /dev/sda3 /mnt/gentoo
mount /dev/sda1 /mnt/gentoo/boot
chmod 1777 /mnt/gentoo/tmp
mount -t proc proc /mnt/gentoo/proc
mount -rbind /sys /mnt/gentoo/sys
mount -make-rslave /mnt/gentoo/sys
mount -rbind /dev /mnt/gentoo/dev
mount -make-rslave /mnt/gentoo/dev
mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
the minimal install cds have the ability to run isohybrid on them and then you can dd that image to a removable device.
Code:
# isohybrid image.iso && dd if=image.iso of=/dev/sdb bs=8192k
dmesg
lspci -k
gentoo dosshd
passwd
#wireless
#http://www.wiloon.com/?p=6008
#start sshd
parted -a optimal /dev/sda
mklabel gpt
unit mib
mkpart primary 1 129
name 1 boot
mkpart primary 129 17536
name 2 swap
mkpart primary 17536 -1
name 3 rootfs
set 1 boot on
quit
#mkfs.vfat /dev/sda1
mkfs.msdos -F 32 /dev/sda1
mkfs.ext4 /dev/sda3
Filesystem UUID: d10a8895-80c5-44ef-be41-edc0bca71c5b
mkswap /dev/sda2
UUID=4d2d7b5c-0d27-4b1d-8e2e-826a3ebb12f4
mount /dev/sda3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/sda1 /mnt/gentoo/boot
mkdir /mnt/gentoo/tmp
chmod 1777 /mnt/gentoo/tmp
date
cd /mnt/gentoo
#download stage tarball
tar xvjpf stage3-*.tar.bz2 -xattrs
#Configuring compile options
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
cp -L /etc/resolv.conf /mnt/gentoo/etc/
mount -t proc proc /mnt/gentoo/proc
mount -rbind /sys /mnt/gentoo/sys
mount -make-rslave /mnt/gentoo/sys
mount -rbind /dev /mnt/gentoo/dev
mount -make-rslave /mnt/gentoo/dev
mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
emerge-webrsync
emerge -sync
eselect profile list
eselect profile set 3
nano -w /etc/portage/make.conf
echo "Asia/Shanghai" >/etc/timezone
emerge -config sys-libs/timezone-data
nano -w /etc/locale.gen
locale-gen
eselect locale list
eselect locale set 5
env-update && source /etc/profile
emerge -ask sys-kernel/gentoo-sources
ls -l /usr/src/linux
emerge genkernel
genkernel -install initramfs
ls /boot/initramfs*
nano -w /etc/fstab
emerge -ask sys-kernel/genkernel
genkernel all
ls /boot/kernel\* /boot/initramfs\*
find /lib/modules/4.0.5-gentoo/ -type f -iname '\*.o' -or -iname '\*.ko' | less
emerge -ask sys-kernel/linux-firmware
nano -w /etc/fstab
nano -w /etc/conf.d/hostname
emerge -ask -noreplace net-misc/netifrc
passwd
emerge -ask app-admin/syslog-ng
emerge -ask sys-process/cronie
crontab /etc/crontab
emerge -ask sys-apps/mlocate
nano -w /etc/inittab
emerge -ask net-misc/dhcpcd
nano -w /etc/portage/make.conf
Enable the systemd USE flag globally (in make.conf).
eselect profile list
emerge -avDN @world
#syslinux
#efi
echo sys-boot/syslinux >> /etc/portage/package.keywords
emerge -ask sys-boot/syslinux
mkdir -p /boot/efi/EFI/syslinux
cd /usr/share/syslinux/efi64
cp syslinux.efi ldlinux.e64 menu.c32 libcom32.c32 libutil.c32 /boot/efi/EFI/syslinux
#syslinux, bios
dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda
emerge sys-apps/gptfdisk
gdisk /dev/sda
x
a
w
mkdir /boot/extlinux
extlinux -install /boot/extlinux
ln -snf . /boot/boot
cd /usr/share/syslinux
cp menu.c32 memdisk libcom32.c32 libutil.c32 /boot/extlinux