zoukankan      html  css  js  c++  java
  • Gentoo安装(虚拟机)

    安装前准备:

        下载install-amd-minimal-xxxxxx

              portage-latest.tar

              stage3-amd64-xxxxxx.tar

              (xxxxxx 为日期)

    安装:

         准备好虚拟机,加载install-amd-minimal-xxxxxx.iso启动

         F1 加载启动liveCD,选择gentoo ,(第二个为gentoo-nofb,无帧缓冲)

         编辑/etc/ssh/sshd_config 开启密码认证,及空密码登录,删除密码,通过xterm登录

         vi /etc/ssh/sshd_config

         PasswordAuthentication yes                                                   
         PermitEmptyPasswords yes

         passwd -d root

         确认硬盘设备lsblk (一般为sda)

         分区规划 boot -->200M  ;   swap --> 1024M  ;  / --> 剩余

         mkfs.ext4 /dev/sda1

         mkfs.ext4 /dev/sda3

         mkswap /dev/sda2 && swapon /dev/sda2

         挂载

         mount /dev/sda3 /mnt/gentoo/

         mkdir /mnt/gentoo/boot

         mount /dev/sda1 /mnt/gentoo/boot

         上传并解压stage3和portage

         cd  /mnt/gentoo

         tar xvjpf stage3* --xattrs

         tar xvjpf portage* -C usr/  --xattrs

         编辑make.conf文件

         nano -w  /mnt/gentoo/etc/portage/make.conf  (Ctrl+o保存,Ctrl+x退出,Ctrl+w查找)

         CFLAGS定义了C语言程序的优化参数

         CFLAGS="-march=native -O2 -pipe"

                  或="-march=K8 -O2 -pipe" 等其他

                Intel CPU 改成 -march=core2

          CXXFLAGS="${CFLAGS}"

          MAKEOPTS="-j4"   定义编译线程,根据CPU情况设定,一般为核心数+1,建议在CPU+1至2*CPU+1之间

          ACCEPT_KEYWORDS="~amd64" 可以获得amd64平台的最新软件,即官方所说的不稳定软件,32位更换为"~x86",不想更新到最新的系统的去掉"~"标记

         CHOST="x86_64-pc-linux-gnu"  此行默认

         VIDEO_CARDS="intel "   指定显卡类型,英特尔集显用这个标签。ATI显卡闭源驱动用fglrx,开源驱动用radeon。Nvidia显卡使用nvidia标签。

         LINGUAS=”zh zh-CN zh_CN.UTF-8”           设定语言

         INPUT_DEVICES="keyborad mouse evdev"  输入输出设备,有触摸板的可以根据实际情况设定synaptics标签。

         USE="mmx apng boost aqua a52 aac acpi cairo canna cvs dbus dri gd glut lame mad mng mp4 mplayer multilib smp svg theora usb wifi x264 xvid  alsa sasl ssl sse sse2 X -gnome qt4 dvd alsa cdr kde bash-completion bzip2 cjk curl cvs cxx iconv jpeg jpek2k openmp opengl openal png therads lzma lzo"

        AUTOCLEAN=”yes”   每次安装完后自动清理垃圾

       设置更新源 (选择China下的)多个

       mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

       设置同步源  (选择China下的)只能一个

       mirrorselect -i -r -o >> /mnt/gentoo/etc/portage/make.conf

       复制当前DNS信息    

       cp -L /etc/resolv.conf /mnt/gentoo/etc/

       安装必要的文件,挂载必要分区到新系统

       mount -t proc proc /mnt/gentoo/proc

       mount --rbind /sys /mnt/gentoo/sys

       mount --rbind /dev /mnt/gentoo/dev

       切换环境

       chroot /mnt/gentoo /bin/bash

       source /etc/profile

       同步Portage tree

       emerge –sync  (网络不好可暂时跳过)

       设置系统环境

       eselect profile list

       eselect profile set 6 

       设置时区命令:

       echo "Asia/Shanghai" > /etc/timezone

       

       配置本地环境:

       nano -w /etc/locale.gen

       输入以下内容:

       en_US ISO-8859-1

       en_US.UTF-8 UTF-8

       zh_CN GB18030

       zh_CN.GBK GBK

       zh_CN.GB2312 GB2312

       zh_CN.UTF-8 UTF-8

       更新locale:locale-gen

       重新加载环境

       env-update && source /etc/profile

       下载编译源码(重要,需特别注意)

        emerge gentoo-sources

        cd /usr/src/linux

        make menuconfig

        make  && make modules_install && make install

        安装genkernel

        emerge genkernel

        制作initramfs

        genkernel --install initramfs

        编写fstab,

        nano -w /etc/fstab

        /dev/sda1  /boot  ext4  noauto,noatime    1 2
        /dev/sda3  /         ext4  noatime               0 1
        /dev/sda2  none   swap  sw                      0 0
       #/dev/cdrom  /mnt/cdrom auto  noauto,ro  0 0 

        配置主机名 

        nano -w /etc/conf.d/hostname

        hostname="xxx"

        配置网络

        nano -w /etc/conf.d/net

        config_xxx="x.x.x.x netmask x.x.x.x brd x.x.x.x"

        routes_xxx="default via x.x.x.x"

        或者 config_xxx="dhcp" 或者留空默认为dhcp

        设置网卡自动启动

        cd /etc/init.d

        ln -s net.lo net.xxx

        rc-update add net.xxx default

        修改root密码

        passwd

        新增用户gandefeng

        useradd -m -G users,wheel,audio,cdrom,portage,usb,video -s /bin/bash gandefeng

       passwd

       安装日志管理软件

       emerge syslog-ng  cronie

       rc-update add syslog-ng  default

       rc-update add cronie default

       rc-update add sshd default (注意配置文件)

       安装文件索引和dhcp

       emerge mlocate

       emerge dhcpcd

       安装bootloader

       emerge sys-boot/grub

       grub-install  /dev/sda

       grub-mkconfig -o /boot/grub/gruc.cfg

       (如果是多系统,已经有grub的,在别的系统执行update-grub可更新Gentoo的引导项目、到grub菜单,有可能需要更改grub.cfg里关于Gentoo的启动项root=/dev/sdxx为root=UUID=sdxx的UUID)

       退出环境,umount

       exit

       cd

       umount -l /mnt/gentoo/dev{/shm,/pts}

       umount -l /mnt/gentoo{/boot,/proc}

       reboot

    重启后更新系统,安装软件和桌面

       emerge -e system 重新编译系统软件

       emerge -e  world 重新编译全部软件

       emerge -uDN world 升级系统包括use的变化引起的

       emerge --sync  更新Portage树

       注意: 更新中遇到某个包更新过不去,使用一下命令

                 per-cleaner all

                 phyton-updater

                 env-update  更新系统变量

                 etc-update   更新配置文件  -3 表示接受所有修改

          仍然过不去,可能是上游的原因,可以编辑配置文件暂时告诉系统,这个程序已经安装

          nano -w /etc/portage/profile/package.provided

          比如输入我编译不过去的这个软件:

          dev-perl/Try-Ting-0.110.0

          此时,再执行更新系统命令,会跳过这个包的编译更新,如果还有别的包编译不过去,以此类推。待系统正常后,可以注释掉package.provided里面的软件,尝试再次更新系统。

          有些包,系统必备的,不安装会有很多包编译不过去,但是这个包专机却又安装不上去,这时候可以尝试将make.conf中的MAKEOPTS参数改为”-j1“,使用单线程编译。比如有次遇到dev-libs/boost编译不过去,只能改为-j1才能过。

          安装X

          emerge -av xorg-server  xorg-x11  xorg-drivers

          (startx是否正常不影响桌面环境的运行)

          为Gentoo安装桌面环境,以KDE为例。一般100+的包,三五个小时才能编译完

          emerge kde-meta   这将安装KDE的全部组件完整安装

          emerge kdebase-meta    基础KDE环境+少许必备软件

          emerge kdebase-startkde   基础KDE环境

    设置显示管理器

          rc-update add xdm default    将xdm加入自启动服务

           rc-update add dbus default    将dbus加入自启动服务

          nano –w /etc/conf.d/xdm

          将文件里面的xdm修改为kdm,然kdm设置为登录管理器。

         

    Gentoo使用Overlay

        安装emerge layman

        添加gentoo-zh到layman:

        layman –L && layman –a gentoo-zh

    • 在/etc/portage/make.conf最后加入以下两行:

      source /var/lib/layman/make.conf 

      PORTDIR_OVERLAY="${PORTDIR} ${PORTDIR_OVERLAY}" 

      如此一来就可以安装第三方的软件了,比如

      emerge wps-office

      emerge fcitx-sogoupinyin

    •  

      emerge gentoolkit

      安装gentoolkit后,可以执行

      emerge --depclean && revdep-rebuild进行系统垃圾清理。

    •  

       安装Chrome浏览器

      emerge -av google-chrome

      强烈建议安装google-chrome而不是chromium,后者编译太耗时了,怕了,服了!

    •  

      Gentoo安装网络管理器(安装kde-meta的略过此步骤)

      取消/etc/conf.d/net中定义的ip获取方式

      emerge -av networkmanager networkmanagement

      rc-update add NetworkManager default

    •  

      为Gentoo安装中文包

      emerge kde-l10n

    •  

       系统设置,local,设置中国,语言设置为中文,应用,重启后生效。

    •  

      安装中文字体,复制Windows字体到

      /usr/share/fonts中,刷新系统:fc-cache –fv

    •  

      系统基本上可用了,有了桌面环境,有了网络,剩下的还有什么搞不定的呢??

      

    Gentoo常用命令和小技巧

      

    • 下面是一些进入Gentoo系统后的一些常用命令和小技巧。

      从别的Linux系统去更新Gentoo。比如说我在Ubuntu下工作,想更新一下Gentoo,此时不用重启系统,只用切换到Chroot环境,进行更新就好了。

      sudo -i

      mount /dev/sdb12 /mnt/gentoo/

      mount -t proc proc /mnt/gentoo/proc

      #mount --rbind /sys /mnt/gentoo/sys

      #mount --rbind /dev /mnt/gentoo/dev

      chroot /mnt/gentoo /bin/bash

      source /etc/profile

      export PS1="(chroot) $PS1"

      此时已进入,可以执行更新命令:

      emerge --sync && emerge --update --deep --newuse --with-bdeps=y @world && emerge --depclean && revdep-rebuild

      或者简单点的:emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild

      效果是一样的哈。

      退出Chroot环境

      # exit

      # cd

      # umount -l /mnt/gentoo/dev{/shm,/pts,}

      # umount -l /mnt/gentoo{/boot,/proc,}

    •  

      Gentoo更新内核:

      emerge -u gentoo-sources

      eselect kernel list

      eselect kernel set 数字

      更新/usr/src/linux符号链接:

      cd /usr/src

      ln -sfn linux-3.11.4-gentoo linux

      genkernel --menuconfig all (此时可以load之前保存的config文件。注意:默认保存在/usr/src/linux但是刚才的步骤更新了/usr/src/linux指向,所以原来保存的配置文件在上一个版本的内核源码包里面,比如/usr/src/linux-3.15.5-gentoo文件夹里面,需先把此文件夹下的配置文件复制到新内核的目录中,比如:/usr/src/linux-3.15.6-gentoo才能正确导入。

      如果新内核编译后,无法进入图形界面,那么就要从正常的内核中提取配置文件,用以编译新内核。步骤如下:

      用能正常进入图形界面的内核引导系统,提取内核配置文件:cat /proc/config.gz | gzip –d > /usr/src/linux/config-ok

      此时会将配置文件提取到/usr/src/linux目录下,配置文件名称为config-ok,导入的时候导入这个,就可以执行编译了。

      也有更简单的办法,指定特定配置文件进行内核编译:

      genkernel --kernel-config=/usr/src/linux/config-ok --install --symlink all

      半自动配置方法是:genkernel --menuconfig --install --symlink all  此时会出现内核编译选项对话框,可以导入配置文件,也可以手动选择。

    •  

      gcc-config: Active gcc profile is invalid! 解决办法

      gcc-config –c首先得到当前gcc版本号

      执行gcc-config+得到的版本

      比如:gcc-config x86_64-pc-linux-gnu-4.7.3

      ok!

    • 4

      Gentoo日常升级维护:

      emerge --sync or eix-sync

      emerge -auvDN world

      revdep-rebuild

      emerge –depclean

      或emerge --sync && emerge -auvDN world && emerge --depclean && revdep-rebuild

    • 5

      编译到一半中断了,可以删除临时文件,方法为:rm –rf /var/tmp/portage/*

    • 6

      查看软件编译时间:

      qlop –Hgvt xxx

      比如:qlop –Hgvt gcc这里会得到历次编译gcc所用的时间。

       

       

       

     

      

        

  • 相关阅读:
    js识别键盘操作
    抽奖活动 算法设计
    Eureka 配置项说明
    manjaro 更新chrome报签名错误
    manjaro系统上使用asdf安装php注意事项
    Failed to load config "react-app" to extend from.
    YarnV2 install
    银河麒麟安装达梦数据库失败Unable to load native library: libnsl.so.1: cannot open shared object file: No such file or directory
    Net5中使用Swagger
    编译Windows 版本的Redis 6.x
  • 原文地址:https://www.cnblogs.com/gandefeng/p/6836386.html
Copyright © 2011-2022 走看看