我的Debian GNU/Linux——安装篇

其实我很早就想写这样一篇文章,在学校我碰到很多对Linux有浓厚兴趣的朋友,但大多都被Linux复杂的安装给堵在门外了,其实安装Linux并不复杂,只是我们长时间使用M$的Windows系统以至于有时我们很难理解Linux下的一些概念,像分区,很多人会抱怨为什么是这样而不是像XP那样......

选择Debian GNU/Linux(以下简称Debian)而不是像Ubuntu这样对用户更友好的发行版原因有很多,最主要的一个是我不喜欢每次升级都要从新安装.

Debian主要分三个版本:稳定版本(stable)、测试版本(testing)、不稳定版本(unstable).每个Debian都会有相应的取自《玩具总动员》的代号,如现在的稳定版的代号是lenny,测试版是Squeeze,而不稳定版的代号从来都是sid(想知道原因就是看一下《玩具总动员》).

凡是Debian要收录的软件都必须首先放在unstable版本里面进行测试,等到足够稳定以后会放到testing版本里面.每隔2年Debian会发布一个stable版本,当前的testing版也就是下一个stable版.Debian素以稳定著称,所以很多服务器都使用Debian的稳定版作为其操作系统.对于普通桌面用户,我个人认为testing版已经足够稳定了,况且稳定版发布后2年内除了安全更新,对里面的软件是不会更新版本的.

这里我们将在已有windows XP的系统下安装一个testing版,testing现在是squeeze.

到http://ftp.debian.org/debian/dists/testing/main/installer-i386/current/images/netboot/debian-installer/i386/ 下载linux和initrd.gz两个文件.

1.安装基本系统

如果你电脑上已经有GRUB,那就比较方便了,如果没有,那道www.sf.net 搜索 "GRUB4DOS"下载解压,将其中的menu.lst grldr和grub.exe三个文件复制到C盘根目录,再用记事本打开C:boot.ini,在最后加上" C:GRLDR="GRUB" ",如果boot.ini里timeout=0,那最好修改成timeout=5或更多.再将前面下载的linux和initrd.gz两个文件也复制到C盘根目录,编辑menu.lst,加入

title install debian
kernel (hd0,0)/linux root=/dev/ram ramdisk_size=256000 devfs=mount,dall
initrd (hd0,0)/initrd.gz
boot

中间两句的意思是从第一块硬盘的第一个主分区导入linux和initrd.gz两个文件作为内核和临时根分区.这里的(hd0,0)指的是第一块硬盘的第一个主分区,在计算机里数字是从0开始的.硬盘的分区分为主分区和拓展分区,主分区最多只能有4个,而拓展分区可以再进行分区,分成若干个逻辑分区(不是无限多个,SCSI硬盘最多可以有16个逻辑分区,IDE最多63个).所以(hd0,0)(hd0,1)(hd0,2)(hd0,3)都是预留给主分区的用的,而windows下的D,E,F盘是属于逻辑分区,自然标识就是从(hd0,5)开始的了,如果你的计算机有第二块硬盘,那标识就是(hd1,x)了.

接下来重启计算机,出现OS选者界面时选择GRUB,在GRUB界面里选择install debian

语言选择“简体中文”,一路按照指示安装,ip获取如果可以dhcp则是自动获取, 如果不能那么请询问网络管理员,如果是拨号,那我也不会了你得先上网查清楚再安装.

安装过程中需要注意的是分区.首先选择手动分区,如果你安装前已经在硬盘上为Linux准备了空闲,那只要对空闲的空间进行分区就行了,否者你也可以选择把linux装在系统原有的分区中(在windows下是无法使用linux分区的).

对你准备的空闲空间分区:分成两个EXT4(也可以选择其他文件系统)分区和一个swap分区(虚拟内存),swap分区的大小为内存的1~1.5倍.对于那两个EXT4分区,一个挂在点为"/"分区,不用太大10G一般就够了,另一个"/home",要大点,以后你的文件什么的都在这里面.像我比较菜,分区就只分3个了,其实还有其他更好的分区方式.

然后一路向下,在选择软件源(源的概念后面会介绍)的时候选手动输入,我使用的源是CN99的,地址是http://debian.cn99.com,在选择要安装的软件集的时候安装系统标准工具即可,最后把GRUB引导起装到MBR区就可以了.

这样一个基本系统就安装好了.然后重启.

2.APT软件包管理

Debian将可用的软件按一定格式打包好放在“源”(其实就是一个软件包的仓库)上,你通过APT工具从源上下载安装需要的软件,而且APT自动为你解决了Linux软件安装中最为复杂的依赖问题.

常用的APT命令参数有以下几个:

apt-get update #更新源
apt-get upgrade #更新已安装的包
apt-cache search package #搜索包
apt-cache show package #获取包的相关信息
apt-get install package #安装包
apt-get install package --reinstall #重新安装包
apt-get -f install #修复安装错误
apt-get remove package #删除包
apt-get remove package --purge #删除包,包括删除配置文件等
apt-get dist-upgrade #升级系统
apt-cache depends package #了解使用依赖
apt-cache rdepends package #是查看该包被哪些包依赖
apt-get clean
apt-get autoclean #清理无用的包

重启后用root帐号登录,输入

cd /etc/apt/
vi sources.list

把源设置为(如果VI不会用,可以先别修改)

deb http://debian.cn99.com/debian/ testing main contrib non-free

最后保存并退出VI,开始安装需要的软件,在终端下输入

apt-get install x-window-system-core gnome-core gdm3

x-window-system-core是X系统,可以理解为底层图形库,gnome-core是桌面环境,gdm3是会话管理器.为了避免安装一堆我们永不上的东西,X系统和gnome桌面都只安装核心部件,这样其实就够用了.安装完成后输入reboot再重启就可以看到图形桌面了.

重启后在GDM3下用普通帐号登录.

3.设置系统及安装必要的软件包

进入图形界面后对于windows过来的用户就可以使用自己习惯的方式安装软件包了.接下来继续我们的工作.

3.1.安装debian-multimedia源

debian-multimedia源是最常被引用的非官方源之一,其中包含了很多因为版权或其他问题不容易进入官方源的软件包,像flash,w32codecs解码器之类的都要用这个源安装

点击 应用程序->附件->附件->终端,打开终端(也可以用系统菜单下的"新立德软件包管理器"),输入

wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
dpkg -i debian-multime*
#注意了,这里用了通配符,你也可以用tab键自动补全
cd /etc/apt/
#会用VI的输入
vi sources.list
#不会用VI的输入
gedit sources.list

然后加入debian-multimedia源,把sources.list文件修改为如下(还是直接复制我的吧):

deb http://debian.cn99.com/debian/ testing main contrib non-free
deb http://www.debian-multimedia.org testing main non-free

3.2.字体美化

说是话debian默认的字体挺丑的.在这里我们要美化一下.

3.2.1 安装常用字体

在终端下输入:

su #获取root权限
apt-get install ttf-wqy-*
apt-get install xfonts-wqy
apt-get install ttf-arphic-*

文泉驿(wqy)字体是开源字体,arphic打头的几个字体是Arphic科技遵循"Arphic公共许可"提供给自由软件社区的.文泉驿的正黑字体和微米黑字体都非常漂亮,并不亚于微软的雅黑字体.

3.2.2 安装Windows字体

虽然文泉驿字体很漂亮,但很多时候(什么时候后面再讨论)我们还是要用一些windows下的字体,如果你是开源的狂热爱好者,那可以跳过这一小节

打开终端以root权限执行如下操作

apt-get install ttf-mscorefonts-installer
mount -t ntfs /dev/sda1 /mnt
mkdir -p /usr/local/share/fonts/msfonts
cp /mnt/WINDOWS/Fonts/sim* /usr/local/share/fonts/msfonts/
chmod a+r /usr/local/share/fonts/msfonts/*
fc-cache /usr/local/share/fonts/msfonts/

上面的/dev/sda1是我的windows分区,你可以用fdisk -l查看一下你的windows分区是哪一个.因为windows分区一般都使用NTFS格式,所以在mount时要加上-t ntfs.上面的命令只拷贝了和简体中文相关的字体,我觉得Debian Linux下的英文已经比较好看了.安装完后,用fc-list | grep -i sun查看一下,是不是宋体已经安装成功,在我的计算机上输出如下:

新宋体,NSimSun:style=Regular
宋体-PUA,SimSun-PUA:style=Regular
宋体,SimSun:style=Regular
文鼎PL简报宋,AR PL SungtiL GB:style=Regular

本小节内容来自http://hi.baidu.com/hhvvhv5/blog/item/c9ddd92a3d5a67f4e7cd4056.html

3.3.安装常用软件包

3.3.1.C/C++编译器

在Linux用的C/C++编译器自然是GCC了,GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器.它是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分.GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准.GCC原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言.现在只要配合使用各种语言的前端就可以编译不同的语言了,在命令行下输入

su
apt-get install build-ess*

就可以安装上GCC编译器以及C和C++的前端(这两个前端是默认安装的)了.然后新建一个main.cpp文件,复制一下内容

#include<stdio.h>
#include<iostream>
using namespace std;
 
int main()
{
  printf("Hello Worldn");
  cout<<"Hello world"<<endl;
  return 0;
}

在命令行下输入尝试编译运行一下,一般不会出现什么问题.

g++ -o main main.c
./main

除了GCC的编译器,我一般还会在装上TCC,gfortran,free pascal的编译器.

TCC具体的使用可以去看IBM网站上的《Tiny CC 发挥 C 语言的威力》系列文章,挺强悍的东西,还可以作为C语言解释器用.它的作者就是著名的法国黑客Fabrice Bellard,在2010年初用自己的算法使用台式机击败超级计算机的神人,具体可以阅读一下文章《算法的威力:程序员用台式机打破超级计算机保持的世界记录》,这个神人非常多才多艺,去一下他的个人网站就知道了.

gfortran,这是一个GCC的fortran语言前端,支持fortran95,因为我的专业课里会用到fortran,而且学校提供的那套IDE(集成开发工具)非常老,我也不是很习惯那种鼠标点来点去的操作方式.所以这个是现在我必备的工具之一.

free pascal,pascal语言的头衔挺多的,我也是最近才开始学,主要是觉得它的可读性比较好,有点厌倦用basic语言做伪代码用了.

以上三个编译器的安装代码如下

su
apt-get install gfortran tcc fpc

3.3.2.Java开发工具

sun的java开发工具有开源版的openjdk和非开源的sun-java6,当然sun已经承诺将java完全开源,所以以后两者就没什么区别了.对于普通人来说装那个都是没区别的,一般我都会优先考虑开源的,除非是无可替代的或实在优秀到没有开源替代品的.

安装代码如下

su
apt-get install openjdk-6-jdk
#如果你不用java写代码,那安装java虚拟机就够了,安装代码如下
apt-get install openjdk-6-jre

你可以建立一个Main.java(注意大小写)文件,复制以下内容

import java.io.*;
import java.util.*;
import java.math.*;
 
public class Main{
	public static void main(String[] argc){
		Scanner cin=new Scanner(System.in);
		BigInteger a,b,c;
		int t,id=1;
		t=cin.nextInt();
		while(t--!=0){
			a=cin.nextBigInteger();
			b=cin.nextBigInteger();
			c=a.add(b);
			System.out.println("Case "+id+":");
			System.out.println(a+" "+"+"+" "+b+" "+"="+" "+c);
			if(t!=0) System.out.println();
			id++;
		}
	}
}

在命令行下输入以下内容编译运行,这是一个简单的高精度加法运算.

javac Main.java
java Main

3.3.3.Latex科技问排版系统

又是一个神奇的工具,Tex是一个由美国计算机教授高德纳(Donald E. Knuth)编写的功能强大的排版软件,当时Knuth大神觉得市面上的排版软件不够好,会影响到他即将出版的新书《计算机程序设计艺术》(The Art of Computer Programming)的质量,于是就开发了tex.如今Tex在学术界十分流行,特别是数学、物理学和计算机科学界.而Latex是一种基于TeX的排版系统,由美国电脑学家莱斯利・兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品.对于生成复杂表格和数学公式,这一点表现得尤为突出.因此它非常适用于生成高印刷质量的科技和数学类文档.这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档.

去年我的土力学课程设计就是用latex做的,公式编辑确实非常方便也很漂亮,使用如下几条命令安装

#安装Latex科技文排版软件
apt-get install texlive-latex-base
#安装texlive的cjk支持
apt-get install latex-cjk-chinese
#安装texlive中文字体
apt-get install latex-cjk-chinese-arphic-gbsn00lp latex-cjk-chinese-arphic-gkai00mp
#安装texlive-latex-recommended解决中文支持问题
apt-get install texlive-latex-recommended

安装完以上几个软件包,再新建一个main.tex文件,复制以下代码,并保存

documentclass[a4paper,12pt]{article}
usepackage{fontspec,xunicode}
usepackage[dvips]{graphicx}
usepackage{indentfirst}
setmainfont{宋体}
setlength{parindent}{2em}
linespread{1.3}
begin{document}
section{主动土压力计算}
由课程设计背景资料可知墙后填土为中沙属于均质无粘性土,作用在\
重力式挡土墙结构上的主动土压力可库仑土压力理论按如下公式进行计算:
	begin{equation}
		K_a=
		frac{cos^2(phi-alpha)}
		{cos^2(alpha)cos(alpha+delta)
    	left[1+sqrt{frac{sin(phi+delta)sin(phi-beta)}
		{cos(alpha+delta)cos(alpha-beta)}} right]^2}
		end{equation}
 
	begin{equation}
		E_a=
		frac{1}{2}{gamma{h}^2K_a}
		end{equation}
	end{document}

使用如下命令编译

xelatex main.tex

这样就会在main.tex所在文件夹下生成一个main.pdf文件,看看效果吧.这就是Latex排版出来的公式,是不是很漂亮?

具体怎么进行latex排版,我以后会再写一篇文章好好的整理介绍.如果pdf文件打不开,可以安装evince文档查看器,代码如下

#安装evince文档查看器,poppler-data用于解决部分pdf文档在linux下中文乱码的问题
apt-get install evince poppler-data
3.3.5.其他常用软件安装
#安装压缩解压工具
apt-get install file-roller p7zip p7zip-full p7zip-rar
#安装openoffice及中文支持
apt-get install openoffice.org openoffice.org-l10n-zh-cn
#安装bluefish Web开发工具
apt-get install bluefish
#安装maxima符号运算软件
apt-get install maxima
#为maxima安装一个texmacs前台
apt-get install texmacs
#安装octave这个基本可以兼容matlab
apt-get install octave
#安装qtoctave作为octave的前台,maxima和octave都是命令行下的软件默认不带GUI界面的
apt-get insatll qtoctave
#安装GIMP,这个被称为Linux下的photoshop,虽然我很少用,但还是装上了
apt-get install gimp
#Dia,有时用来画程序流程图
apt-get install dia
#安装chm文档阅读器
apt-get install chmsee
#安装照片管理器
apt-get install shotwell
#安装zim,桌面笔记工具
apt-get install zim
#安装ftp客户端软件
apt-get install gftp
#安装浏览器,firefox在debian下的名字是iceweasel
apt-get install iceweasel-l10n-zh-cn
#安装浏览器flash支持,加入debian-multimedia才能安装
apt-get install flashplugin-nonfree
#安装万能媒体播放器mplayer,及w32codecs解码器
apt-get install gnome-mplayer w32codecs
#安装图形的网络链接管理器
apt-get install network-manager-gnome
#差点忘了,还有vim(vi的改进版)
apt-get install vim-gnome

这么大一个软件清单,我是真的不想详细的去写每个怎么用干什么的之类的废话了,如果要写估计几本书也写不完.关于vim这是我强烈推荐的编辑器,几乎无所不能,顺便提供我自己的vim配置文件给大家,这样vim编辑器上手就会快一些了.把以下文件复制并建立文件名为.vimrc的文件在你的用户根目录下

"语言相关,编码设定
if has("win32")
set encoding=GBK
else
set encoding=utf-8
endif
 
set fileencoding=utf8
set fileencodings=utf-8,GB2312,big5,GBK,gb18030,utf-16,
set ambiwidth=double
set langmenu=zh_CN.UTF-8
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set fenc=utf-8
 
"F9一键编译
map <f9> :call Compile()<cr>
map <f10> :call Run()<cr>
map <f11> :call CompileRun()<cr>
 
"定义CompileRun函数,调用进行编译
func Compile()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc % -Wall -O2 -s -o %<"
"C++程序
elseif &filetype == 'cpp'
exec "!g++ % -Wall -O2 -s -o %<"
endif
endfunc
 
"定义Run函数
func Run()
exec "!%<"
endfunc
 
"定义CompileRun函数
func CompileRun()
exec "w"
if &filetype == 'c'
exec "!gcc % -Wall -O2 -s -o %<"
exec "!%<"
elseif &filetype == 'cpp'
exec "!g++ % -Wall -O2 -s -o %<"
exec "!%<"
endif
endfunc
 
"显示标尺
set ruler
 
"当前光标所在行会有阴影
set cursorline
 
"不要工具条
set guioptions-=T
 
"鼠标支持
set mouse=a
 
"设置行号
set number
 
"空格、制表符和缩进
set cindent
set autoindent
set smartindent
set expandtab
set tabstop=2
set shiftwidth=2
set cin
set cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1 shiftwidth=2 tabstop=2
 
"配色
colo desert
 
"语法高亮
syntax on
 
"默认无备份
set nobackup
 
"显示匹配括号
set showmatch
 
"允许退格键换行
set backspace=2
 
"去除VI一致性,解决方向键输出字母
set nocompatible

长篇"大论"总算是写好了,虽然没有什么自己的观点,但作为一篇备忘笔记还是不错的.下一篇准备写点关于内核编译的东西.本人很菜,难免会有错误,希望大家多指正,互相交流大家才能共同进步.

» 本博客采用署名 2.5 中国大陆许可协议进行许可,本文版权归作者所有,欢迎转载,但必须在明显位置给出原文连接。
anyShare分享到:

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>