【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

仅供存放个人的配置文件,不要在本版发问。
回复
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

#1

帖子 ljj_jjl2008 » 2014-06-29 17:53

另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案
1,准备一个独立的空白磁盘分区,最小5G以上,建议10G以上。
2,设法先启动一个基于ubuntu或者debian的linux(可以是live cd,或者已经安装的实际系统)。设置成能够链接因特网。(这里只是简单介绍,下面有更详细更全面的联网方法介绍)
ubuntu联网,如果有图形界面,请直接在状态栏“网络”图标处右击设置,
需要adsl拨号的也可以用sudo pppoeconf命令设置,

手工拨号
sudo pon dsl-provider

手工断线:
sudo poff

查看连接情况:
plog 和 ifconfig ppp0
ifconfig ppp0 可查询本机的上网IP。
然后在linux中查出要安装linux的分区的设备名。
得到硬盘分区设备名的方法:
(1)推算:硬盘设备名称一般是/dev/sdN 或者 dev/hdN (老硬盘),N是数字,第一个主分区是1,第一个逻辑分区是5,然后是6、7、8、9、10....
(2)命令行sudo cfidsk 查;
(3)图形界面分区工具或者磁盘管理工具查。
查出来的名字一般是:/dev/sda9之类的。
这里一定要查清楚分区对应设备名,下面用得着。如果选错了,会丢数据的。
3,安装debootstrap,安装基本系统。

代码: 全选

sudo -s
mkfs.ext4 /dev/sda9 #/dev/sda9一定要改成你自己的分区
mkdir /minilinux
mount /dev/sda9 /minilinux
以上命令的解释:
切换到root用户
用ext4格式化分区
创建一个/minilinux
把格式化好的分区挂载到/minilinux

代码: 全选

apt-get install debootstrap
debootstrap --arch i386 oneiric /minilinux http://ubuntu.srt.cn/ubuntu/
以上命令的解释:
安装debootstrap工具
依靠debootstrap工具,从http://ubuntu.srt.cn/ubuntu/网站,下载linux oneiric(11.10)的 i386 版本的基本环境,安装到/minilinux目录。
可以根据自己需要,修改成 amd64 和 natty(11.04)。这样安装的系统与你的love cd或者现实的系统没有必然的联系,而是依赖于所选的网站的系统。

代码: 全选

mount -o bind /dev /minilinux/dev
mount -o bind /sys /minilinux/sys
mount -t proc proc /minilinux/proc
chroot /minilinux
以上命令的解释:在现实的linux环境中临时把跟目录指定到minilinux

代码: 全选

dpkg-reconfigure console-setup
apt-get install linux-generic grub-pc
以上命令的解释:
设置终端字符界面风格
安装linux核心和启动引导器grub。
安装grub时会让你选择安装到哪个位置,一般有/dev/sda 和/dev/sda9,这一部分请先补充linux常识,我不解释了。

代码: 全选

adduser ubuntu
addgroup --system admin
echo "admin ALL=(ALL:ALL) ALL" >> /etc/sudoers
usermod -G ubuntu,admin,plugdev,audio,video ubuntu
passwd
以上命令的解释:
添加一个用户ubuntu(请根据你的需要修改)
添加一个用户组admin
为用户组admin启用sudo权限
把ubuntu加入到admin ubuntu plugdev audio video组
为root用户创建密码。

代码: 全选

apt-get install xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-wqy ttf-wqy-zenhei
以上命令的解释:安装各种字体。

4,手工修改各种配置文件,使重启后安装的linux环境可以认出硬盘、网络、
/etc/group、/etc/passwd、/etc/shadow这三个文件是存储上面命令建立的组、用户、密码的,不用手工修改。
以下4个文件需要修改:
/etc/fstab 用于启动时挂载硬盘的
/etc/network/interfaces 设置IP地址、网关等
/etc/resolv.conf 设置DNS
/etc/apt/sources.list 设置“软件源”。

修改方法:
1,用vi等;
记录几个基本的vi命令:vi需要按几下Esc键,然后输入命令,才能开始修改文件内容。下面是最基本的几个命令:
i :开始编辑
o :插入新行,相当于i 后按回车
dd:删除行,按i后可以delete删除字符,但不能删除行,需要删除行就按Esc后连续按dd,则连续删除行。
:wq :存盘退出,按Esc后连续输入:wq ,然后回车
:q! :不存盘退出,按Esc后连续输入:q! ,然后回车
命令区分大小写

2,用图形界面工具,注意用sudo启动,然后打开文件编辑。注意要编辑的是/minilinux/etc下的文件,不要编辑成现实环境中的文件。可以参照现实环境中的文件来编辑修改。
3,用命令行:
引用:
(1)cat > /etc/network/interfaces << "EOF"
进入一种>提示符状态,连续输入,最后输入EOF按回车结束,输入的内容会被保存到中间那个文件
(2)echo "deb ........." >> /etc/apt/sources.list
在后面那个文件最后加入引号内的内容。


关于fstab:
fstab中存放了与分区有关的重要信息,其中每一行为一个分区记录,每一行又可分为六个部份,下面以/dev/hda7 / ext2 defaults 1 1为例逐个说明:
  1. 第一项是您想要mount的储存装置的实体位置,如hdb或如上例的/dev/hda7。
  2. 第二项就是您想要将其加入至哪个目录位置,如/home或如上例的/,这其实就是在安装时提示的挂入点。
  3. 第三项就是所谓的local filesystem,其包含了以下格式:如ext、ext2、msdos、iso9660、nfs、swap等,或如上例的ext2,可以参见/prco/filesystems说明。
  4. 第四项就是您mount时,所要设定的状态,如ro(只读)或如上例的defaults(包括了其它参数如rw、suid、exec、auto、nouser、async),可以参见「mount nfs」。
  5. 第五项是提供DUMP功能,在系统DUMP时是否需要BACKUP的标志位,其内定值是0。
  6. 第六项是设定此filesystem是否要在开机时做check的动作,除了root的filesystem其必要的check为1之外,其它皆可视需要设定,内定值是0。
/dev/sda4 为需要挂载的分区,sda4 是 Linux 检测硬盘时按顺序给分区的命名,一般来讲,这个名称并不会变化,但是如果你有多块硬盘,硬盘在电脑中的顺序变化的时候,相同的名称可能代表着不同的硬盘分区,如果你是从 USB 设备启动,与其他 USB 设备的插入顺序也会导致分区识别的困难。
这个时候 UUID 就派上用场了,UUID 全称是 Universally Unique Identifier,也就是说,每个分区有一个唯一的 UUID 值,这样就不会发生分区识别混乱的问题了。(这里注意,重新格式化分区有可能会改变UUID)
在 fstab 中用 UUID 挂载分区,看起来向这样:
UUID=1234-5678 /mnt/usb vfat utf8,umask=0 0 0
在 UUID= 后面填入分区相应的 UUID 值,就可以正确挂载分区了。
那么,我们如何知道一个分区的 UUID 呢?

有 3 个命令:
1. 通过浏览 /dev/disk/by-uuid/ 下的设备文件信息。
# ls -l /dev/disk/by-uuid/
2. 通过 vol_id 命令。
# vol_id /dev/sdb5
3. 通过 blkid 命令
# blkid /dev/sdb5

也可以通过各种图形界面的磁盘管理工具来查询。
修改fatab命令的参考(请在第3步已经chroot的状态下继续执行,请根据自己实际情况修改UUID等。)

代码: 全选

ls -l /dev/disk/by-uuid/ |grep sda9
  ==> a50c1d35-f13c-4806-81b6-4806d838b5ab
cat >  /etc/fstab << "EOF"
> proc /proc proc defaults 0 0
> UUID=a50c1d35-f13c-4806-81b6-4806d838b5ab / ext4 defaults,errors=remount-ro,relatime 0 1
> EOF
设置:/etc/network/interfaces( 设置IP地址、网关等)/etc/resolv.conf (设置DNS)
http://blog.csdn.net/duanjingneuq/artic ... ls/5682973
ubuntu网络设置详解
# 根据网上资料整理
  # 方式1和方式4已验证
  # anything the matter, please contact: asksamuel@sina.com
  目录
  方式1:网卡通过DHCP自动获取IP地址
  方式2:网卡静态分配IP地址
  方式3:PPPoE宽带拨号配置
  方式4:通过无线局域网接入互联网

  方式1:网卡通过DHCP自动获取IP地址
  $ sudo gedit /etc/network/interfaces
  # 修改文件/etc/network/interfaces如下文
  #-------------------------------------------------------------------------------
  # This file describes the network interfaces available on your system
  # and how to activate them. For more information, see interfaces(5).
  #
  # The loopback network interface(配置环回口)
  auto lo # 开机自动激lo接口
  iface lo inet loopback # 配置lo接口为环回口
  # The primary network interface (配置主网络接口)
  auto eth0 #开机自动激活eth0接口
  iface eth0 inet dhcp #配置eth0接口为DHCP自动获取
  #-------------------------------------------------------------------------------

  $ sudo /etc/init.d/networking restart # 重启网络

  方式2:网卡静态分配IP地址

  $ sudo gedit /etc/network/interfaces

  # 修改文件/etc/network/interfaces如下文

  #-------------------------------------------------------------------------------
  # This file describes the network interfaces available on your system
  # and how to activate them. For more information, see interfaces(5).
  #
  # The loopback network interface(配置环回口)
  auto lo # 开机自动激lo接口
  iface lo inet loopback # 配置lo接口为环回口
  # The primary network interface (配置主网络接口)
  auto eth0 #开机自动激活eth0接口
  iface eth0 inet static #配置eth0接口为静态设置IP地址
  address 10.16.3.99 #IP
  netmask 255.255.255.0 #子网掩码
  network 10.16.3.0 #网段
  broadcast 10.16.3.255 #广播地址
  gateway 10.16.3.1 #网关

  #sudo gedit /etc/resolv.conf

  ##设置DNS server(可以设置多个)
  #nameserver 192.168.1.1

  $ sudo /etc/init.d/networking restart # 重启网络

  方式3:PPPoE宽带拨号配置

  首次拨号:
  应用程序–系统工具–终端  打开一终端,输入命令:
  sudo pppoeconf
  系统开始搜索所有网络接口上的adsl modem,一步步的yes过来。
  │ Please enter the username which you usually need for │
  │ the PPP login to your provider in the input box below. │
  │ If you wish to see the help screen, delete the │
  │ username and press OK. │
  输入你的宽带帐号。
  输入密码。
  tip:如果是河南网通提供的PPPoE宽带帐号,此处输入的是加密后的用户名
  Would you like to add these addresses automatically to the list of nameservers
  in your local /etc/resolv.conf file? (recommended)
  是否自动获得DNS,选择是。
  Should pppoe clamp MSS at 1452 bytes? If unsure, say yes.
  数据包长度的设置,如果跟我一样不确定,选择是
  Your PPPD is configured now. Would you like to start the connection at
  boot time?
  是否启动时自动激活ADSL? 各位看着办吧。

  以后,要手工拨号,打开终端,输入命令:
  sudo pon dsl-provider

  一般情况下,一次拨通后以后登陆ubuntu都会自动拨通上网的了,不用每次都输入命令拨号。
  手工断线:
  sudo poff

  查看连接情况:
  plog 和 ifconfig ppp0
  ifconfig ppp0 可查询本机的上网IP。

  方式4:通过无线局域网接入互联网
此部分略,需要的请看原文链接


设置:/etc/apt/sources.list
根据自己执行debootstrap时选择的源服务器和版本号来设置。
deb http://ubuntu.srt.cn/ubuntu/ oneiric main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-security main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-updates main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-proposed main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-backports main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-security main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-updates main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-proposed main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-backports main restricted universe multiverse
至此,安装基本系统完成。确认以上操作没有错误后,可以重启了。如果顺利,则可以启动到一个只有字符环境的ubuntu系统,然后ctrl-alt-f1进入控制台,用ubuntu用户登陆,执行下面的命令:

代码: 全选

sudo apt-get update & sudo apt-get dist-upgrade
如果不报错,安装完成,下一步需要根据需要安装软件并进一步设置系统。

本部分的工作:学习了解字符界面的常识。
Ubuntu 方便宜用,最值得让人称道的便是其安装软件的方式, 一条命令: sudo apt-get install xxx 就几乎能帮你搞定所有的软件安装难题。但是有时你可能有这样的需求,查看某个软件包是否安装、安装在哪..., 那我们就来介绍一下 Ubuntu 的软件包管理方式。

一、Ubuntu 采用 Debian 的软件包管理器 dpkg 来管理软件包, 类似 RPM. 系统中所有 packages 的信息都在 /var/lib/dpkg/
目录下, 其子目录 /var/lib/dpkg/info 用于保存各个软件包的配置文件列表:
(1).conffiles 记录了软件包的配置文件列表
(2).list 保存软件包中的文件列表, 用户可以从 .list 的信息中找到软件包中文件的具体安装位置.
(3).md5sums 记录了软件包的md5信息, 这个信息是用来进行包验证的.
(4).prerm 脚本在 Debian 包解包之前运行, 主要作用是停止作用于即将升级的软件包的服务, 直到软件包安装或升级完成.
(5).postinst 脚本是完成 Debian 包解开之后的配置工作, 通常用于执行所安装软件包相关命令和服务重新启动.

/var/lib/dpkg/available 文件的内容是软件包的描述信息, 该软件包括当前系统所使用的 Debian 安装源中的所有软件包,
其中包括当前系统中已安装的和未安装的软件包.

/var/cache/apt/archives 目录是在用 apt-get install 安装软件时,软件包的临时存放路径

/etc/apt/sources.list 存放的是软件源站点, 当你执行 sudo apt-get install xxx 时,Ubuntu 就去这些站点下载软件包到本地并执行安装
(选一个好的软件源很关键,关系到软件下载速度和安全性。)
(除了官方源,还有一些官方源的镜像,还有PPA源是用来测试新版软件的,还有一些专业软件的源,如wine、fcitx等,还有一些私人源)

软件包的扩展名是.deb,可以用解压缩软件来解压出里面的文件。

二、dkpg
这个命令是包管理系统的核心。apt-get和aptitude最终都是调用dkpg进行包管理的。安装一些自己下载的deb文件不能使用apt 等命令,而应该:
sudo dkpg -i xxxx.deb
dpkg -configure -a 对所有包进行重新检查设置
dpkg-reconfigure 重新配制一个已经安装的包
三、apt-get
apt:advanced package tools
apt-get [参数] [包的名称]
参数:
install:安装新的包。先下载到硬盘,再安装。如果缓冲存储中存在该包则直接安装
remove:卸载。配置文件将保留,以便下次安装。
autoremove:删除系统没有用到的包
clean:删除硬盘里面的缓冲存储的包(默认位置:/var/cache/apt/archives)
autoclean:删除缓冲存储里面旧版本的包
source:下载源码
update:下载更新软件包信息列表
upgrade:更新软件
dist-upgrade:发布版升级
remove -purge :卸载同时删除配置文件。
check:检查系统完整性
-d install XXXX:仅下载
-f install :修复依赖关系

四、修复软件依赖关系错误:
什么是软件包的依赖关系. 对于Ubuntu软件包管理系统,一些软件包需要其它软件包被安装才能正常运行。
Ubuntu 软件包管理系统依赖声明,它描述了这一事实:一些软件包需要其它软件包被安装才能正常运行或运行得更好。
软件包A依赖(depends)软件包B:要运行A必须安装B。在有些情况下,A不仅依赖B,还要求B的特定版本。版本依赖通常有最低版本限制,A更依赖于B的最新版而非某个特定版本。
软件包A推荐(recommends)软件包B:软件包维护者认为所有用户都不会喜欢缺少某些功能的A,而这些功能需要B来提供。
软件包A建议(suggests)软件包B:B中某些文件与 A 的功能相关,并能够增强 A 的功能。这种关系通过声明软件包 B 增强 Enhances 软件包 A 来表示。
软件包A与软件包B冲突(conflicts):如果系统中安装了B那么A无法运行。“Conflicts”常和“replaces”同时出现。
软件包A替换(replaces)软件包B:B安装的文件被A中的文件移除和覆盖了。
软件包A提供(provides)软件包B:A中包含了B中的所有文件和功能。
所以在安装一个软件包同时,可能会一起安装其他许多软件包,也可能会卸载一些软件包。
一般情况下,apt-get以及他的前端软件(新立得等)会自动维护包依赖关系,软件源里面也会维持包依赖关系。但事情不是绝对的,有时包依赖关系会坏掉,这时可能有些包不能运行,也不能安装新包。
修复包依赖关系:sudo apt-get -f install
如果还是提示错误,则尝试 sudo apt-get remove xxxx删除错误的包,再sudo apt-get -f install
如果连删除都报错,则用其他包管理器尝试删除(sudo aptitude remove xxxx ,或者新立得等)再修复。


linux的目录文件体系:

代码: 全选

/   根目录 
    │ 
    ├boot/      启动文件。所有与系统启动有关的文件都保存在这里 
    │    └grub/   Grub引导器相关的文件 
    │ 
    ├dev/       设备文件 
    ├proc/      内核与进程镜像 
    │ 
    ├mnt/      临时挂载 
    ├media/   挂载媒体设备 
    │ 
    ├root/      root用户的$HOME目录 
    ├home/          
    │    ├user/   普通用户的$HOME目录 
    │    └.../ 
    │ 
    ├bin/      系统程序 
    ├sbin/      管理员系统程序 
    ├lib/      系统程序库文件 
    ├etc/      系统程序和大部分应用程序的全局配置文件 
    │   ├init.d/   SystemV风格的启动脚本 
    │   ├rcX.d/   启动脚本的链接,定义运行级别 
    │   ├network/   网络配置文件 
    │   ├X11/      图形界面配置文件 
    │ 
    ├usr/       
    │   ├bin/      应用程序 
    │   ├sbin/   管理员应用程序 
    │   ├lib/      应用程序库文件 
    │   ├share/   应用程序资源文件 
    │   ├src/      应用程序源代码 
    │   ├local/       
    │   │     ├soft/      用户程序       
    │   │     └.../      通常使用单独文件夹 
    │   ├X11R6/   图形界面系统 
    │ 
    ├var/         动态数据 
    │ 
    ├temp/         临时文件 
    ├lost+found/   磁盘修复文件
其中当前用户个人目录可以用~表示
用.(英文的点)开头的文件和目录是隐藏文件和目录
几个特殊位置:
apt-get存储的包默认位置:/var/cache/apt/archives
11.10flash插件存放位置:/usr/lib/flashplugin-installer/
wine的软件安装到的位置:~/.wine/drive_c/
系统字体:/usr/share/fonts/
系统中文字体:/usr/share/fonts/zh_CN/TrueType/ (没有目录就自己建立)
个人字体:~/.fonts
代码:
sudo fc-cache -f -v
刷新系统字体列表

linux中杀死内存中的进程:
1,ps -a 列出进程,找到进程PID
2,kill <PID> 杀死进程。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

#2

帖子 ljj_jjl2008 » 2014-06-29 18:04

本部分的工作:手工搭建一个及其简单的X桌面环境。

常识:
字符界面明显不能满足日常使用的需求,所以我们需要图形界面。

很多LINUX的初学者分不清除linux和X之间,X和Xfree86之间,X和KDE,gnome等之间是什么关系.常常混淆概念,我想以比较易于理解的方式说明一下X,X11,XFREE,WM,KDE,GNOME等之间的关系.由于本人水平有限肯可能存在错误,请高手指正.

http://hi.baidu.com/kv2004/blog/item/0b ... 72312.html
  一 linux本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的.

  图形界面并不是linux的一部分,linux只是一个基于命令行的操作系统,linux和Xfree的关系就相当于当年的DOS和WINDOWS3.0一样,windows3.0不是独立的操作系统,它只是DOS的扩充,是DOS下的应用程序级别的系统,不是独立的操作系统,同样XFree只是linux下的一个应用程序而已.不是系统的一部分,但是X的处在可以方便用户使用电脑.WINDOWS95及以后的版本就不一样了,他们的图形界面是操作系统的一部分,图形界面在系统内核中就实现了,没有了图形界面windows就不成为windows了,但linux却不一样,没有图形界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器.这也WINDOWS和linux的重要区别之一.

  二 X是协议,不是具体的某个软件:

  X是协议,就像HTTP协议,IP协议一样,这个概念很多初学者甚至学习LINUX有一定时间的人都混淆,一个基于X的应用程序需要运行并显示内容时他就联接到X服务器,开始用X协议和服务器交谈.比如一个X应用程序要在屏幕上输出一个圆那么他就用X协议对X服务器说:喂!我需要在屏幕上画一个圆.X应用程序只负责告诉X服务器在屏幕的什么地方用什么颜色画一个多大的圆,而具体的"画"的动作,比如这个圆如何生成,用什么显卡的驱动程序去指挥显卡完成等等工作是由X服务器来完成的.X服务器还负责捕捉键盘和鼠标的动作,假设X服务器捕捉到鼠标的左键被按下了,他就告诉X应用程序:亲爱的应用程序先生,我发现鼠标被按下了,您有什么指示吗?
  如果X应用程序被设计成当按下鼠标左健后再在屏幕上画一个正方形的话,X应用程序就对X服务器说:请再画一个正方形,当然他会告诉服务器在什么地方用什么颜色画多大的正方形,但不关心具体怎么画--那是服务器的事情.
  那么协议是需要具体的软件来实现的,这就是下面我要讲的:

  三 X和XFree86的关系.

  有了协议就需要具体的软件来实现这个协议.就好比我们有了交通法规就需要交警去根据法规维护交通秩序一样.XFree86就是这样一个去根据法规实现协议的"囗囗".他按照X协议的规定来完成X应用程序提交的在屏幕上显示的任务.当然不仅仅是某个特定的交警才可以去维护和实现这个法规,比如还可以由交通协管员来实现交通法规,必要的时候警察也可以介入,当然前提是他们都要懂得交通法规,也就是要懂得协议.所以实现X协议的软件也并不只有XFree86,XFree86只是实现X协议的一个免费X服务器软件.
  商业上常用MOTIF,现在还有XORG,还有很多很小的由爱号者写的小的X服务器软件.甚至可以在WINDOWS上有X服务器运行,这样你可以在linux系统上运行一个X应用程序然后在另一台windows系统上显示.多么神气.你可以用google找到这样的X服务器软件.
  只不过在LINUX上最常用的是XFree86.顺便说一句,苹果电脑的图形界面用的也是X协议,而且被认为是做的最好的X协议图形界面,并且他对X协议的实施是做在系统内核里的,所以性能明显好很多,这就是为什么很多大型三维图形设计软件都是在苹果平台上的原因.
  为了便于理解拿HTTP协议来比较:
  协议是HTTP (hyper text transmission protocol)
  实现这个协议的常用服务器有:apache IIS 等
  请求这些服务器传输文件的客户有:IE ,MOZILLA ,NETSCAPE等.    

  四 X和X11R6又是什么关系?

  不知道初学者有没有注意到/usr/X11R6这个目录,这是XFree的默认安装目录
  X11R6 实际上是 X Protocol version 11 Release 6
  (X协议第11版第六次发行)的意思,就是说目前用的X协议是第11版的,然后经过了6次小的修正.不同版本的X协议是不能通信的.就象我们现在IPV4和IPV6不能通信一样,不过不用担心,现在的X服务器软件和X应用程序都遵循X11R6.
  另外XFree86 3.3.6 XFree86 4.3.6 等这些版本是实现X协议的软件XFree86的版本号.这是初学者经常高混淆的概念.
  协议版本和实现协议的软件的版本--这两个概念的区别你分清除了吗?    

  五 X服务器和WM(window manager 窗口管理器)之间是什么关系.

  平时大家起动图形界面是怎么启动的呢?
  如果你是一开己就进入图形界面那就太遗憾了.应为你错过了了解X服务器起动过程的好时机.不过没关系.你打开一个XTERM输入:
  init 3
  就可以安全的回到字符界面.
  好了,等做完以下实验你就完全明白X和WM(window manager 窗口管理器)之间是什么关系了.
  先输入以下命令:

  #startx
  起动图形界面,你看到的是一个和平时使用一样的完整的图形界面操作环境.
  你可以最大化,最小化,移动,关闭窗口等.
  按ctrl+alt+backspace反回字符界面.
  输入:
  #xinit
  再次启动图形界面,你看到了什么,你看到一个XTERM.而且不能移动.但是你可以在这个XTERM中输入命令打开X应用程序,如故我输入:
  #mozilla
  打开浏览器,你看到的浏览器和平时有什么不同吗?他在屏幕中间,不能移动,不能最小化,不能最大化,没有边框.
  为什么同样一个X应用程序会有这样的不通呢?因为我们用startx起动图形界面的时候同时也启动了一个WM(即窗口管理器),如果你用KDE就起动了KDE,如果你用GNOME就起动了GNOME.但是你用xinit起动图形界面的时候却没有起动WM.
  现在你明白窗口管理器的作用了吗?他的作用就是最大化,最小化,移动,关闭窗口等.而这些不是X服务器来负责完成的.
  如果你用xinit起动图形界面并在xterm中输入twm,看看会有什么?
  xterm被加上了一个边框,你可以通过这个边框移动,最大化,最小化这个xterm,twm就是XFree86中自带的窗口管理器,是一个比较简陋的最简单的窗口管理器,但是他具有窗口管理器的全部特征.
  如果你不输入twm而输入gnome-session就可以起动GNOME
  或者输入startkde起动KDE.
  通过以上的实验你就可以清楚的明白他们之间的关系.
以上是一个2007年的文章,当时Xorg还不流行,而我们现在主要使用的Xorg。

1,安装Xorg,WM,浏览器,并简单设置
先安装tinyx,最小的X实验一下
还是在上面的chroot状态下,执行以下命令:

代码: 全选

  apt-get install xserver-xfbdev

然后打下面这个补丁,否则启动X时花屏。
http://www.pps.jussieu.fr/~jch/software ... -2_all.deb

代码: 全选

apt-get install jwm (你们也可以选别的窗口管理器)
apt-get install chromium-browser
先把浏览器、窗口管理器都安装上。

然后重启,进入新环境,先后执行:

sudo -s
export DISPLAY=:0.0
Xfbdev &
chromium-browser &
jwm &

发现:出现了chromium-browser界面,但是不响应鼠标键盘。只好重启。没有找到问题解决办法,只好安装更大的另一个X

重启后:

代码: 全选

sudo apt-get install xorg
sudo dpkg-reconfigure xserver-xorg
sudo cp ~/xorg.conf.new /etc/X11/xorg.conf
sudo vi /etc/X11/xorg.conf
自己修改一下xorg.conf,主要改显示器和显卡部分,有可能需要反复修改才能达到想要的效果,并且有人说修改不当会烧毁显示器
参照下文:
以下是此区块的系统默认值,以及可供使用的选项说明:
Section "Monitor"
Identifier "Generic Monitor"
Option "DPMS"
HorizSync 28-51
VertRefresh 43-60
EndSection
Identifier:显示器的惟一名称。在这些名称后面都会加上一个数字,而第一个显示器的代表数字为0(Monitor0)。
VendorName:显示器制造商名称。
ModelName:显示器类型名称。
HorizSync:与显示器兼容的水平刷新频率范围,其单位为kHz。这个设置值会同时指出是否在此显示器中使用特定的Modeline值。
VertRefresh:与显示器兼容的垂直刷新频率范围,其单位为kHz。这个设置值会同时指出是否在此显示器中使用特定的Modeline值。

Device
“Device”Section用于设置显示卡的信息内容,在此文件中至少需要包含一个以上的Device Section。如果系统中包含多张显示卡,或一张显示卡上有多种设置值,则可以使用多个Device Section设置。
以下是此区块的系统默认值,以及可供使用的选项说明:
Section "Device"
Identifier "VMWare Inc [VMware SVGA II] PCI Display Adapter"
Driver "vmware"
BusID "PCI:0:15:0"
EndSection
Identifier:显示卡的惟一名称。
Driver:用来告诉X Server应从何处加载显示卡的驱动程序。
VendorName:显示卡制造商名称。
BoardName:显示卡类型名称。
BusID:显示卡的总线位置,这个选项适用于多显示卡环境。
Screen
“Screen”Section合并了Device和Monitor的部分,以便能够形成成对的设置内容。在此文件中至少需要包含一个以上的Screen Section。
以下是此区块的系统默认值,以及可供使用的选项说明:
Section "Screen"
Identifier "Default Screen"
Device "VMWare Inc [VMware SVGA II] PCI Display Adapter"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Identifier:定义一个“Screen”名称,以便在“ServerLayout”Section中进行参照。
Device:指定“Device”Section中的名称。
Monitor:指定“Monitor”Section中的名称。
DefaultDepth:默认的色深(Color Depth)位数。

代码: 全选

Section "ServerLayout"
   Identifier     "X.org Configured"
   Screen      0  "Screen0" 0 0
   InputDevice    "Mouse0" "CorePointer"
   InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
   ModulePath   "/usr/lib/xorg/modules"
   FontPath     "/usr/share/fonts/X11/misc"
   FontPath     "/usr/share/fonts/X11/cyrillic"
   FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
   FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
   FontPath     "/usr/share/fonts/X11/Type1"
   FontPath     "/usr/share/fonts/X11/100dpi"
   FontPath     "/usr/share/fonts/X11/75dpi"
   FontPath     "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
   FontPath     "built-ins"
EndSection

Section "Module"
   Load  "glx"
   Load  "dbe"
   Load  "dri"
   Load  "record"
   Load  "dri2"
   Load  "extmod"
EndSection

Section "InputDevice"
   Identifier  "Keyboard0"
   Driver      "kbd"
EndSection

Section "InputDevice"
   Identifier  "Mouse0"
   Driver      "mouse"
   Option       "Protocol" "auto"
   Option       "Device" "/dev/input/mice"
   Option       "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
   Identifier   "Monitor0"
   VendorName   "Monitor Vendor"
   ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "AccelMethod"           # [<str>]
        #Option     "DRI"                   # [<bool>]
        #Option     "ColorKey"              # <i>
        #Option     "VideoKey"              # <i>
        #Option     "FallbackDebug"         # [<bool>]
        #Option     "Tiling"                # [<bool>]
        #Option     "LinearFramebuffer"     # [<bool>]
        #Option     "Shadow"                # [<bool>]
        #Option     "SwapbuffersWait"       # [<bool>]
        #Option     "XvPreferOverlay"       # [<bool>]
        #Option     "DebugFlushBatches"     # [<bool>]
        #Option     "DebugFlushCaches"      # [<bool>]
        #Option     "DebugWait"             # [<bool>]
        #Option     "HotPlug"               # [<bool>]
        #Option     "RelaxedFencing"        # [<bool>]
   Identifier  "Card0"
   Driver      "intel"
   BusID       "PCI:0:2:0"
EndSection

Section "Screen"
   Identifier "Screen0"
   Device     "Card0"
   Monitor    "Monitor0"
   DefaultDepth 24
   
   SubSection "Display"
              Depth 24
              Modes "1280x1024" "1024x768" "800x600" "640x480"
   EndSubSection
EndSection
以上是我的xorg.conf。

然后:

代码: 全选

export DISPLAY=:0.0

代码: 全选

sudo X &
按ctrl-alt-f7会看见黑屏和一个X形鼠标 返回tty1

代码: 全选

sudo chromium-browser &
按ctrl-alt-f7会看见浏览器界面,和一个X形鼠标,可以输入、点击,但没有边框,不能移动和调整大小。 返回tty1

代码: 全选

sudo jwm &
按ctrl-alt-f7会看见浏览器界面,和一个正常鼠标,可以输入、点击,有边框,能移动和调整大小。 可是最小化后窗口会消失,再也不能恢复了。

这时需要简单设置一下jwm:

代码: 全选

zcat /usr/share/doc/jwm/example.jwmrc.gz > ~/.jwmrc

然后再执行上面那些指令,就能看见正常的一个非常简单的桌面了,有状态栏,有菜单。

2,设置locale,安装输入法。

代码: 全选

apt-get install fcitx*

代码: 全选

sudo chmod -R 777 /var/lib/locales/supported.d
cd /var/lib/locales/supported.d/
sudo touch ja
sudo touch ko
sudo touch zh
sudo chmod -R 777 /var/lib/locales/supported.d/
sudo echo "ja_JP.UTF-8 UTF-8" >>ja
sudo echo "ja_JP.EUC-JP EUC-JP" >>ja
sudo echo "ko_KR.UTF-8 UTF-8" >>ko
sudo echo "ko_KR.EUC-KR EUC-KR" >>ko
sudo echo "zh_CN.UTF-8 UTF-8" >>zh
sudo echo "zh_TW.UTF-8 UTF-8" >>zh
sudo echo "zh_CN.GB2312 GB2312" >>zh
sudo echo "zh_CN.GBK GBK" >>zh
sudo echo "zh_CN.GB18030 GB18030" >>zh
sudo echo "zh_TW.Big5 Big5" >>zh
cd -
设置LC_ALL和其它属性(主要是设定显示的语言、字符集、和输入法支持):

代码: 全选

sudo gedit /etc/environment
*
在编辑器里,将内容修改如下(默认使用中文界面):
LANGUAGE="zh_CN:zh:en_US:en"
LC_ALL=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8
LANG=zh_CN.UTF-8
GST_ID3_TAG_ENCODING=GBK
*
保存,关闭编辑器
执行命令:

代码: 全选

sudo dpkg-reconfigure locales
使以上设置生效。

代码: 全选

cd /usr/bin
ln -sf fcitx chinput
建立文件:~/.bashrc
export XMODIFIERS=@im=fcitx
export XIM=fcitx
export XIM_PROGRAM=fcitx

代码: 全选

im-switch -s fcitx
sudo im-switch -s fcitx
然后重启,先后执行:

代码: 全选

export DISPLAY=:0.0
sudo X &
sudo chromium-browser &
sudo jwm &
sudo fcitx &
ctrl-空格可以打开输入法了。

ubuntu或debian下面如果默认不是中国时区的话,我们就需要手动配置,选择标准北京时间所在的时区。
ubuntu或debian 下面手动设置时区的命令

代码: 全选

dpkg-reconfigure tzdata
在配置窗口中,我们选择Asia/shanghai时区。
这只是权宜之计,还需要执行下面的操作 :

代码: 全选

rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/shanghai /etc/localtime
这样的操作,可以避免系统重启后,时 间又变了的状况。
以后每次开机,系统就会自动的把时区设为上海时间。

3,设法使开机时自动启动以上项目
我使用的方法是安装了一个“登录管理器”,我选择的是slim。

代码: 全选

sudo apt-get install slim

然后修改以下3个配置文件:
文件 /etc/X11/xinit/xinitrc 加上以下内容:

代码: 全选

DEFAULT_SESSION=jwm

case $1 in
kde)
   exec startkde
   ;;
xfce4)
   exec startxfce4
   ;;
icewm)
   icewmbg &
   icewmtray &
   exec icewm
   ;;
wmaker)
   exec wmaker
   ;;
blackbox)
   exec blackbox
   ;;
jwm)
    jwm &
    fcitx &
    ;;
*)
   exec $DEFAULT_SESSION
   ;;
esac
文件 /etc/slim.conf 加上jwm的sessions ,
sessions default,jwm,startxfce4,openbox,ion3,icewm,wmaker,blackbox,awesome

文件 /etc/X11/Xsession.d/20slim_locale 加上以下内容(否则不能打开fcitx输入法)
. /etc/environment

4,安装若干基于X的程序,并给WM添加菜单。

代码: 全选

sudo apt-get install geany
sudo apt-get install sakura
sudo apt-get install rox-filer
sudo apt-get install kdesudo
(发现一个BUG:使用gksu会在~目录遗留一个 .gksu.lock ,这个文件的存在会引起下次重启时在slim登陆界面输入用户名后直接跳出到字符界面,所以安装了kdesudo代替gksu。----2011.08.06)
安装文本编辑器
安装支持鼠标和复制粘贴的终端
安装一个文件管理器。

文件 ~/.jwmrc修改成如下内容(有些软件没有找到合适的图标文件,只是简单的加上了菜单项,没有图标)

代码: 全选

   <RootMenu height="15" onroot="123">
      <Program icon="rxvt.png" label="Terminal(终端)">x-terminal-emulator</Program>
<!--  <Program icon="firefox.png" label="Www Browser">x-www-broser</Program> -->
      <Program icon="chromium-browser.png" label="chromium(浏览器)">chromium-browser</Pogram>
      <Program icon="audacious.png" label="rox-filer(文件浏览)">rox-filer</Pogram>
      <Program icon="audacious.png" label="sakura(终端)">sakura</Program>
      <Program icon="geany.png" label="Geany(文本编辑)">geany</Program>
      <Program icon="audacious.png" label="fcitx(输入法)">fcitx</Program>
      <Program icon="audacious.png" label="synaptic(新立得)">kdesudo synaptic</Program>   
然后重启,就会出现登录界面了。
登录以后发现了问题:
(1),我用sudo -s切换到过root状态,也用sudo执行过很多命令,不知道什么原因或者哪条命令,引起普通用户的home目录下,有一些只有root用户才有权利修改的文件和文件夹。致使在用普通用户登录进入jwm后,执行命令或者打开浏览器,经常有错误提示,甚至不运行。多次尝试修改权限,都没有达到能够顺利访问的目的。实在是懒得去分析究竟错了多少权限了,我把home下这些文件和文件夹权限全部设置成任何人都可以自由读写,解决了问题。

编辑文件 /etc/X11/Xsession.d/20slim_locale ,在最后加上一行:
rox-filer -p default &

重启jwm后会出现一个桌面,可以在rox-filer中把程序或者.desktop拖到桌面上面作为快捷方式。
4,安装中文语言包(可选)
发现有好多程序的界面半中半洋,中英文混杂。于是安装中文语言包:

我是用新立得安装的语言包,在新立得里面过滤“zh-hans”,然后将过滤到的结果安装。

5,配置声音,安装播放器、解码器、flash、java。

是用新立得安装的以上软件包,在新立得里面过滤“ubuntu-restricted”,安装再过滤“alsa”,安装。
然后过滤mplayer,安装gnome-mplayer

这里注意:(1),不要只是安装flashplugin-installer,直接安装的flashplugin-installer插件不能正常运行,估计是缺少其他文件的支持。
(2),我这里flash插件右键菜单里面的“设置”不相应鼠标,有些flash游戏自动弹出的是否允许在本地保存文件的提示也不响应鼠标。解决办法是在右键菜单里面选“全局设置”,在里面设置成“不再提示”,然后在全局设置里面最后两个页签里面找到对应网站,也设置一下。
(3),flash经常崩溃,可能和我的计算机有关,因为我的其他环境里面flash也经常崩溃。


至此,本部分设置基本完成,完成后大约占用磁盘空间2G,形成一个可扩展的mini ubuntu。

到这里了,先上一张图吧。感觉比较丑,因为第六步的优化和美化还没有完成。

(由于是补,图丢失了!!)

6,安装一个puppy(一个基于jwm的发行版),然后分析他的设置和所使用的各种软件,借鉴以后改进我的linux。
在已经有linux其他系统情况下安装puppy,其实很简单,只要把光盘ISO里面的文件全部解压到某个目录(比如/dev/sda9/puppy),然后把解压出来的文件中initrd.gz和vmlinuz的文件名改成小写,把puppy_way.sfs改名成puppy_wary_5.1.2.sfs(不同版本可能有所不同,如果改的不对,启动时会有错误提示,请根据提示再改一次)
然后修改:/etc/grub.d/40_custom
加入以下内容

代码: 全选

menuentry 'puppy'  os {
   linux   (hd0,msdos9)/puppy/vmlinuz
   initrd   (hd0,msdos9)/puppy/initrd.gz
}
执行以下命令:

代码: 全选

sudo update-grub

然后重启即可。第一次启动时,会让你配置键盘、显卡等信息,配置完成后,一般就可以正常显示。这时生成的xorg.conf质量很高,比我们原来配置的一般要好,可以对比一下这个xorg.conf和我们所手工修改生成的那个,必要时调整一下。
启动以后可以安装中文包,从一个puppy中文论坛上面可以下载,叫什么“半步中文包”,下载下来找到文件点击一下就自动安装,中间有几步需要按照提示手工配置。安装过程是后台进行的,没有进度提示,要耐心等待安装完成的提示框出现。刚安装完成以后是乱码,需要重新启动一下jwm,或者干脆启动一下机器。
第一次关闭puppy时会提示建立一个文件,用于存储对系统的修改。然后下一次启动时会自动加载这个文件当成puppy的一个磁盘。

(由于是不数据,图都丢失了)


看这个图,和我的有点像,但是右下角的tary和左下角的本地硬盘的图标我没有。我的程序非常少,基本没有办公软件。
右下角的tary意义不大,音量在播放软件里面可以调节,也可以用alsamixer 命令在终端中调节。网络我们通过修改配置文件和命令行已经设置好了。
但是本地硬盘的图标挺好,其实我们这个系统直接修改fstab文件,把本地硬盘挂载到目录树里面了,也可以省略。
至于里面这些程序,我们的系统是基于ubuntu的,有一个软件源在背后支撑,所以我们不担心没有软件可用,只是担心我们的硬盘不够用和我们不会用。我没有安装办公软件,是因为我有另外一个linux环境,kubuntu的,我在kubuntu下办公。这个环境上网速度、falsh速度比kubuntu环境快,我以后在中午休息时间我可以在这个环境上网玩游戏。另外一个目的就是学习和折腾,我会在这个环境尝试各种软件,用完就删除,然后再安装别的......

所以我的这个环境暂时不打算按照puppy的风格进行美化了,配置到这步就已经完成了。

我用free命令察看了一下,如果不启动rox桌面,占用300M内存,如果启动rox桌面并显示桌面背景图片,这个系统不上网需要400M内存,上网大概需要600M内存,其中有250M分给了一个tmpfs,不知道有什么意义。
我为了和windows用户交流和传送文件,wine了一个“飞鸽”,也占用一部分内存。
那个kubuntu比这个环境多用300多兆内存。
上网占用内存大是没有办法的,因为flash太吃内存了。如果大家不安装wine,并且省掉桌面的话,估计能够在256M内存的老机器上跑起来。我在我家256M内存、1G CPU的老机器上也能跑的动,但是安装上flash后上网就有点卡了。另外就是我把家里的机器配置坏了,现在已经不能进入图形界面了。也不知道是哪个文件写错了,所以说这种安装和配置系统的方法,不是十分安全,有一定风险的。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

Re: 【补:丢失的第一轮折腾】另类方式安装ubuntu 手工配置系统 debootstrap安装, 图形界面有三套方案

#3

帖子 ljj_jjl2008 » 2014-06-29 18:10

这一部分是最后的总结,我的测试和学习全部完成以后,我把失败的测试和不合理的做法去掉,有多种方法可以实现的也只保留效率最高的一种方法,完整的写下来,命令顺序也和上面测试时有一些调整。
(这部分的命令没有解释和风险提示,是我自己为以后重新安装或者修复环境用的,如果水平低的同学,请按照上面楼层的帖子自己判断进行)
1,准备一个独立的空白磁盘分区,最小5G以上,建议10G以上。
2,设法先启动一个基于ubuntu或者debian的linux(可以是live cd,或者已经安装的实际系统)。设置成能够链接因特网。

代码: 全选

sudo -s
mkfs.ext4 /dev/sda9 #/dev/sda9一定要改成你自己的分区
mkdir /minilinux
mount /dev/sda9 /minilinux #/dev/sda9一定要改成你自己的分区
apt-get install debootstrap
debootstrap --arch i386 oneiric /minilinux http://ubuntu.srt.cn/ubuntu/ #请根据你自己机器状况调整
mount -o bind /dev /minilinux/dev
mount -o bind /sys /minilinux/sys
mount -t proc proc /minilinux/proc
chroot /minilinux
dpkg-reconfigure console-setup
apt-get install linux-generic grub-pc #grub根据需要安装,我有kubuntu的环境,所以我把grub2安装到/dev/sda9了
adduser ubuntu
addgroup --system admin
echo "�min ALL=(ALL:ALL) ALL" >> /etc/sudoers
usermod -G ubuntu,admin,plugdev,audio,video ubuntu
passwd
exit #退出chroot状态
sudo gedit /minilinux/etc/apt/sources.list #或者用其他文本编辑器
deb http://ubuntu.srt.cn/ubuntu/ oneiric main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-security main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-updates main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-proposed main restricted universe multiverse
deb http://ubuntu.srt.cn/ubuntu/ oneiric-backports main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-security main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-updates main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-proposed main restricted universe multiverse
deb-src http://ubuntu.srt.cn/ubuntu/ oneiric-backports main restricted universe multiverse

代码: 全选

ls -l /dev/disk/by-uuid/ |grep sda9
  ==> a50c1d35-f13c-4806-81b6-4806d838b5ab

cat >  /etc/fstab << "EOF"
> proc /proc proc defaults 0 0
> UUID=a50c1d35-f13c-4806-81b6-4806d838b5ab / ext4 defaults,errors=remount-ro,relatime 0 1
> EOF
exit  #退出chroot
exit  #退出sudo -s
sudo update-grub #我更新真实环境的grub2,为了重启能引导进新系统,如果live cd安装,此步省略
(如果是adsl拨号链接的,还要安装设置pppoe,这部分命令我没有记录下来,你们自己按照我楼上的帖子补充一下。)

代码: 全选

sudo chroot /minilinux
apt-get update & apt-get dist-upgrade
apt-get install xfonts-base xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-wqy ttf-wqy-zenhei
apt-get install xorg
apt-get install jwm 
zcat / usr/share/doc/jwm/example.jwmrc.gz > ~/.jwmrc

chmod -R 777 /var/lib/locales/supported.d
cd /var/lib/locales/supported.d/
touch ja
touch ko
touch zh
chmod -R 777 /var/lib/locales/supported.d/
echo "ja_JP.UTF-8 UTF-8" >>ja
echo "ja_JP.EUC-JP EUC-JP" >>ja
echo "ko_KR.UTF-8 UTF-8" >>ko
echo "ko_KR.EUC-KR EUC-KR" >>ko
echo "zh_CN.UTF-8 UTF-8" >>zh
echo "zh_TW.UTF-8 UTF-8" >>zh
echo "zh_CN.GB2312 GB2312" >>zh
echo "zh_CN.GBK GBK" >>zh
echo "zh_CN.GB18030 GB18030" >>zh
echo "zh_TW.Big5 Big5" >>zh
cd -
exit
sudo gedit  /minilinux/etc/environment

在编辑器里,将内容修改如下(默认使用中文界面):
LANGUAGE="zh_CN:zh:en_US:en"
LC_ALL=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8
LANG=zh_CN.UTF-8
GST_ID3_TAG_ENCODING=GBK

代码: 全选

sudo chroot /minilinux
dpkg-reconfigure locales

apt-get install rox-filer
apt-get install slim
sudo apt-get install sakura
exit #退出chroot,
sudo gedit /minilinux/home/ubuntu/.bashrc
重启前利用图形界面的编辑器修改新系统的:
~/.bashrc
/etc/environment
以上两个文件用于设置中文locale和使fcitx起作用。

文件:/minilinux/etc/environment
LANGUAGE="zh_CN:zh:en_US:en"
LC_ALL=zh_CN.UTF-8
LC_CTYPE=zh_CN.UTF-8
LANG=zh_CN.UTF-8
GST_ID3_TAG_ENCODING=GBK
文件:/minilinux/home/ubuntu/.bashrc
export XMODIFIERS=@im=fcitx
export XIM=fcitx
export XIM_PROGRAM=fcitx

/etc/network/interfaces(网卡和IP等,格式如下)
# The loopback network interface(配置环回口)
  auto lo # 开机自动激lo接口
  iface lo inet loopback # 配置lo接口为环回口
  # The primary network interface (配置主网络接口)
  auto eth0 #开机自动激活eth0接口
  iface eth0 inet static #配置eth0接口为静态设置IP地址,
  address 10.16.3.99 #IP
  netmask 255.255.255.0 #子网掩码
  network 10.16.3.0 #网段
  broadcast 10.16.3.255 #广播地址
  gateway 10.16.3.1 #网关
或者:
 auto lo # 开机自动激lo接口
  iface lo inet loopback # 配置lo接口为环回口
  # The primary network interface (配置主网络接口)
  auto eth0 #开机自动激活eth0接口
  iface eth0 inet dhcp #配置eth0接口为DHCP自动获取
如果使用了pppoe,则设为自动获取,不要设下面的DNS,执行pppoeconf时会再次自动修改这个文件。

/etc/resolv.conf (设置DNS,自动获取DNS的不用设置,格式如下,可以设置多个)
nameserver 192.168.1.1
/etc/fstab(开机挂载磁盘)
/etc/apt/sources.list(软件源)
/etc/X11/xorg.conf(X驱动)

/etc/X11/xinit/xinitrc
/etc/slim.conf
~/.jwmrc
/etc/X11/Xsession.d/20slim_locale
以上4个用于设置slim+jwm+rox的配合
文件 /minilinux/etc/X11/xinit/xinitrc 加上以下内容:
(重点是jwm对应的那部分)

代码: 全选

DEFAULT_SESSION=jwm

case $1 in
kde)
   exec startkde
   ;;
xfce4)
   exec startxfce4
   ;;
icewm)
   icewmbg &
   icewmtray &
   exec icewm
   ;;
wmaker)
   exec wmaker
   ;;
blackbox)
   exec blackbox
   ;;
jwm)
    jwm &
#    fcitx & 
    ;;
*)
   exec $DEFAULT_SESSION
   ;;
esac
文件 /minilinux/etc/slim.conf 加上jwm的sessions ,

代码: 全选

sessions default,jwm,startxfce4,openbox,ion3,icewm,wmaker,blackbox,awesome
文件 /minilinux/etc/X11/Xsession.d/20slim_locale (重点是. /etc/environment和jwm对应的那部分)

代码: 全选

#!/bin/sh
. /etc/default/locale
. /etc/environment
for lt_var in $(env -i locale | sed -e 's/=.*$//') LANGUAGE
do
   eval "if test \"\${$lt_var+set}\" = set; then
      export $lt_var
      fi"
done

case $1 in
kde)
   exec startkde
   ;;
xfce4)
   exec startxfce4
   ;;
icewm)
   icewmbg &
   icewmtray &
   exec icewm
   ;;
wmaker)
   exec wmaker
   ;;
blackbox)
   exec blackbox
   ;;
jwm)
#    wine c:/ipmsg/ipmsg.exe &
    rox-filer -p default &
    parcellite &
    ;;
openbox)
    exec openbox-session &
    ;;
*)
   exec $DEFAULT_SESSION
   ;;
esac
文件 ~/.jwmrc修改成如下内容(有些软件没有找到合适的图标文件,只是简单的加上了菜单项,没有图标)

代码: 全选

   <RootMenu height="15" onroot="123">
      <Program icon="rxvt.png" label="Terminal(终端)">x-terminal-emulator</Program>
<!--  <Program icon="firefox.png" label="Www Browser">x-www-broser</Program> -->
      <Program icon="chromium-browser.png" label="chromium(浏览器)">chromium-browser</Pogram>
      <Program icon="audacious.png" label="rox-filer(文件浏览)">rox-filer</Pogram>
      <Program icon="audacious.png" label="sakura(终端)">sakura</Program>
      <Program icon="geany.png" label="Geany(文本编辑)">geany</Program>
      <Program icon="audacious.png" label="fcitx(输入法)">fcitx</Program>
      <Program icon="audacious.png" label="synaptic(新立得)">kdesudo synaptic</Program>   
不会设置的,请看一下前3个楼层的内容。

这些文件请仔细核对没有问题后再重启。要修改挂载在minilinux的里面的(正在安装的系统的),不要改成当前系统的。其中xorg.conf如果不知道怎么改,可以参照3楼我的xorg,假如重启以后不能进入图形界面,则ctrl-alt-f1登陆后输入以下指令修改

代码: 全选

sudo dpkg-reconfigure xserver-xorg
sudo cp ~/xorg.conf.new /etc/X11/xorg.conf
sudo vi /etc/X11/xorg.conf
说明:因为以上指令很多是以sudo执行的,形成的文件有可能ubuntu用户没有权限,所以重启前必须重新设定一下,要把/home/ubuntu目录设定成所有人都能读写,里面所有文件设定成所有人都能读写执行,等启动完成没有问题了,再在新环境中设定成合理的权限。
重启前只利用chroot安装xorg、slim、rox-filer(桌面和文件管理器)、sakura(终端),其他的fcitx、浏览器、等重启后在新系统中安装。因为chroot毕竟不完全是真实的环境。
重启,进入新系统。如果不能进入图形界面,则在控制台中执行以下指令再次重启:

代码: 全选

sudo dpkg-reconfigure xserver-xorg
sudo cp ~/xorg.cong.new /etc/X11/xorg.conf
sudo vi /etc/X11/xorg.conf
然后,就会出现登录界面了。登录后出现一个桌面,可以在rox-filer中把程序或者.desktop(/usr/share/applications下面)拖到桌面上面作为快捷方式,选一个图片作为背景。

以下是登陆后需要执行的命令:

代码: 全选

sudo apt-get install fcitx*
cd /usr/bin
sudo ln -sf fcitx chinput
im-switch -s fcitx
sudo im-switch -s fcitx
sudo rm -rf /etc/localtime && sudo ln -s /usr/share/zoneinfo/Asia/shanghai /etc/localtime
sudo dpkg-reconfigure tzdata #选择Asia和shanghai
date#检查效果
#sudo pppoeconf
sudo apt-get install geany
sudo apt-get install chromium-browser
sudo apt-get install synaptic
sudo apt-get install kdesudo
(发现一个BUG:使用gksu会在~目录遗留一个 .gksu.lock ,这个文件的存在会引起下次重启时在slim登陆界面输入用户名后直接跳出到字符界面,所以安装了kdesudo代替gksu。----2011.08.06)

以下是对系统的优化和微调:

*安装中文语言包(可选)
发现有好多程序的界面半中半洋,中英文混杂。于是安装中文语言包:

我是用新立得安装的语言包,在新立得里面过滤“zh-hans”,然后将过滤到的结果安装。

*配置声音,安装播放器、解码器、flash、java(可选)。

是用新立得安装的以上软件包,在新立得里面过滤“ubuntu-restricted”,然后将过滤到的结果中ubuntu的2个,lubuntu的1个安装,kubuntu的那个太大就不要装拉了。(占240M左右空间)再过滤“alsa”,安装。
然后过滤mplayer,安装gnome-mplayer


*安装一个鼠标主题(可选)

代码: 全选

sudo apt-get install oxygen-cursor-theme
或者新立得过滤“mouse theme”,选择一个来安装。

*安装一个全局剪切板(可选)

代码: 全选

sudo apt-get install parcellite
编辑:/etc/X11/Xsession.d/20slim_locale,文件最后加上

代码: 全选

parcellite &
*设置一下快捷键冲突:
geany快捷键中ctrl-<空格>与fcitx冲突,需要改掉。
fcitx中 “左ctrl”切换中英文与 我们习惯的 “左ctrl”+c 等有冲突,改为“右ctrl”。
fcitx输入法去掉“使用系统托盘”选项(因为他在托盘中显示的图标有问题),“主窗口隐藏模式”改成“显示”(即不显示托盘图标,也不隐藏主窗口)

补充说明:这个环境菜单中只有退出图形界面的菜单项,没有关机和重启的菜单项,关机和重启用以下方法:
1,退出图形界面,到slim登陆界面
2,用户名处输入“halt”或者“reboot”(不包括引号,分别表示“关机”和“重启”)
3,密码输入root的密码。即完成关机和重启。




全部完成,收工!

重新测试是在1G CPU,256M内存的老机器上安装的,可以流畅运行。如果中间没有出错,网速还可以,整个安装过程大约60-120分钟。
(以上所有指令已经经过验证,如果有谁按照这个方法安装成功了,请回帖,错误了也要告诉我呀!)
回复