创建本地ubuntu mirror(镜像)

前两天成功“欺骗”一位同事安装了个ubuntu dapper,能够得手的原因主要是他忙于在网上看小说,原来的xp被恶意软件、恶意网站和病毒搞垮了,而我为他安装的linux和firefox对这些都基本免疫,所以才能够得手。如果能够再克服activex和msword两个障碍,就可以推广到更大的范围了。

安装很顺利,不过使用的是外置usb光驱启动安装,所以读盘的速度比较慢,下回我会尝试下载一个server版的光盘安装,会快很多,只是安装完要在手工安装desktop包。另外安装完成以后按照“官方配置指南”配置中文和java等也需要下载一些东西,我这里是网通的线路,官方的源中很少有快的,除了国立台湾大学的。不过这样总不是办法,随着线路情况的变化,这些源的快慢变化不定,还是局域网内有一个稳定的源最为稳妥,所以萌生了mirror一个ubuntu的念头。

作一个镜像也很简单的,只要有一台ubuntu,配置好apache,安装上rsync程序,准备足够的硬盘空间,就可以了,通过rsync编写一个小的脚本,就可以了,脚本如下:

	#! /bin/bash
	rsync -aPS --delete-after \
		--exclude *amd64* --exclude *ia64* \
		--exclude *powerpc* --exclude *sparc* \
		--exclude *hoary* --exclude *warty* \
		--exclude *breezy* \
		--exclude *.iso \
		--exclude *.orig.tar.gz --exclude *.diff.gz \
		--exclude *.dsc \
		rsync://archive.ubuntu.com/ubuntu \
		/home/ubuntu

这个例子抄自这里,从hiweed传出来的,不过注释有些小错误,更正如下:

  • exclude amd64 ia64 powerpc sparc 是去掉不想要的架构
  • exclude hoary warty breezy 是去掉不想要的发行版本
  • exclude .iso 是去掉光盘镜像文件
  • exclude orig diff dsc 是去掉源代码软件包(?)
  • rsync://… 是镜像来源,和source.list中的一样
  • /home/ubuntu 是镜像文件保存到哪里

apache配置虚拟目录就不说了,以后局域网的电脑的source.list就简单了,比如deb http://ubuntu.csie.ntu.edu.tw/ubuntu/ dapper main restricted universe multiverse里面,把网址http://…部分更换成内网服务器地址,比如http://server/ubuntu/就可以了。

crontab -e把这个脚本放到cron中,每天执行,嘿嘿。

	# m h  dom mon dow   command
	0 4 * * * /home/fwolf/rsync_ubuntu.sh

镜像不知道需要花费多少空间,有了结果以后再告诉大家。

update @ 2007-02-06 顺路推荐一个不错的,可以在win、linux、osx等各种os环境下运行的,类似中游和联众的联网游戏,蓝迪游戏,除了现在人少点,别的都还不错,甚至支持龙芯电脑

update @ 2007-02-12 补充一点,不是所有apt源都可以作为rsync源的,因为对方可能只开了http,没有开rsync。现在知道的,至少archive和us.archive.ubuntu.com这系列的服务器是都支持的。

update @ 2007-02-19 只镜像edgy的i386部分,不要iso不要源码,花费73G空间,够大的,寒!

update @ 2007-02-22 上面介绍的那个蓝迪游戏,不是人少么?但是可以邀请机器人陪玩,虽然性质有点像单机游戏了,可是机器人的水平可真不低,斗地主的时候出炸弹的时机掌握得也很好,刚才被搞得很郁闷:(。在线游戏刚开始运行人少的时候,不失为一个不错的办法,即使是人多了,也可以当作rpg中的npc打怪赚钱嘛。

update @ 2007-03-07 Ubuntu in Launchpad这里有一份完整的官方ubuntu镜像站点清单,不仅列出了每个站点的所在国家和带宽情况,标注有“Alternatives: rsync”的就是可以使用rsync进行同步的站点。

另外还找到了一篇通过apt-mirror建立镜像的文章,可以参考。

同时,如果镜像过来的文件是存储在通过samba访问的windows共享目录下的话,会因为windows无法正确设置文件权限和日期而导致每次都需要从头开始同步,打开”-checksum”参数通过md4校验值来解决这个问题的话又巨慢,每次同步的时候,两端都要对所有文件计算checksum,所以,可以下载cwRsync(windows下运行的把cygwin和rsync打包在一起的一个软件),从windows这端来同步文件,对外提供共享服务仍然用linux。

Update @ 2007-10-29

这种方式建立的镜像是完全镜像(full archives),需要180~220G空间,难怪磁盘空间不够。像我这种在局域网中提供服务的,建立一个发行版镜像就可以了(releases mirror),只需要大约30G空间。并且使用apt-mirror来作这个镜像比rsync要简便得多。

参考

Update @ 2009-04-21

发现一种假死现象,4月7号在apt-mirror中添加了9.04 jaunty源的下载,到20号了还没看到动静,仔细查看archive-log.0发现大量的错误:

HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.

--2009-04-21 01:08:19--  (try:76068)

重启apt-mirror进程也无效,开始怀疑是磁盘空间不足的问题,但怎么看也不像。后来发现存在有4月7号开始的wget进程,一直没有结束。看来就是这样的进程即导致了刚才错误中的重试7万多次,也“堵塞”了后续的操作,因为apt-mirror总进程数是有限的嘛。

杀掉这些wget进程,更新恢复。

我的Ubuntu Linux空间占用情况

在一台台式机、一台笔记本上,大约从今年4月份开始使用Ubuntu(非虚拟机)至今,基本完成了简单的文档、上网、开发等工作,现在回头比较一下各个分区的空间使用情况,为很快就要到来的新机器安装系统作下准备,同时也可以供打算使用ubuntu或者Linux的朋友参考。

这两台机器上安装的东西大体类似,除了标准的Ubuntu(Gnome桌面)之外,常用的软件有OpenOffice, Firefox, Gimp, Apache, Mysql, Php, Azureus, Epiphany, ePdfViewer, MPlayer, LumaQQ, Wine, VMware等,除了VMware以外,其他都是可以在ubuntu的源中找到的。另外还有一些其他的直接运行的软件,以及下载的文件、电影等,都存放在了单独的挂载分区中,计算空间使用时不予考虑,重点考虑常用软件尤其是系统本身的空间占用情况。

另外,/var,/usr等目录我也没有从/分区中单独划出来,主要是考虑到不会经常重装系统,并且是个人工作使用而非服务器,也很少安装超大型软件,所以就都放在一起了,分区太多了显得乱,并且我另外还有单独的大分区比如/bak都挂在了/下面,重要的东西也不会往/下面存太多的。

现在,两台机器的空间占用情况如下(已经执行过apt-get clean):

/ 2.3G-3.6G
/home 400M-600M

总体来说空间占用不大,尤其是/home,里面就只有配置文件,并且只有我一个用户,download和tools都是link到别的地方的。另外/中几个重要目录的空间占用如下:

/var 400M
/lib 500M
/usr 2.7G

以上只是实际空间占用情况,可以看到/usr比较大,可以优先考虑单独分区,另外如果是作服务器使用的话,/var(里面有log文件)和/tmp别忘记也要分大一些,现在硬盘都比较大,可以适当多给些空间。

Update @ 2009-09-03

3年过去了,还是这个系统(中间好像换了台电脑,但文件和系统是直接 cp 过去的),秀一下如今的空间占用情况:

$ uname -a
Linux fwolf 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU/Linux

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb2             9.9G  3.1G  6.4G  33% /
/dev/sdb1             471M   70M  376M  16% /boot
/dev/sdb3             9.9G  7.8G  1.7G  83% /usr
/dev/sdb9             5.0G  130M  4.6G   3% /tmp
/dev/sda1              20G   14G  5.9G  70% /home

/ 下的 /var 占用空间为 2.2G。

[Ubuntu]使用点滴

注:本文按照体验时间倒序排列,最后更新时间:2009-01-08。

fstab配置参数中如果要使用空格怎么办?

用\040替代空格即可。

访问windows共享打印机时windows端容易忘记的设置

在组策略管理gpedit.msc中:

  • “用户权利指派”中,“从网络访问此计算机”中加入guest帐户,“拒绝从网络访问这台计算机”中删除guest帐户
  • “网络访问:本地账户的共享和安全模式”设为“经典—本地用户以自己的身份验证”
  • 禁用“账户:使用空白密码的本地账号只允许进行控制台登录”

关机后无法自动切断电源

如果在dmesg中有如下内容:

[    0.000000] ACPI: no DMI BIOS year, acpi=force is required to enable ACPI

那么在/boot/grub/menu.lst中对应启动内核的kernel项后面添加acpi=force即可,比如:

kernel      /boot/vmlinuz-2.6.22-14-generic root=UUID=7fa1d627-0068-44ec-9beb-1701f1544e88 ro quiet splash acpi=force

Downloader for X启动时没响应

如果在shell中启动,能看到错误信息:

~$ d4x
mcop warning: user defined signal handler found for SIG_PIPE, overriding

解决方法,在配置文件~/.ntrc_2/config中,把enable_sounds 1中的1改为0即可,参考

打开网络设定network-admin/Network Settings时错误

提示:

The entered password is invalid Check that you typed it correctly and that you haven't activated the "caps lock" key although correct passwd

总说密码不对,但你输入的密码肯定没有问题,其实这是一个bug(参见Debian > gnome-system-tools (2.18.1-1) changelog),解决方法,安装或者重装gnome-system-tools即可,另外两个可疑的包就是libnet-dbus-perlsystem-tools-backends

ATI显卡,fglrx驱动加载成功,但direct rendering无法打开

部分错误信息:

$ LIBGL_DEBUG=verbose glxinfo
name of display: :0.0
...
libGL: OpenDriver: trying /usr/lib/dri/radeon_dri.so
libGL error: dlopen /usr/lib/dri/radeon_dri.so failed (/usr/lib/dri/radeon_dri.so: undefined symbol: _glapi_get_dispatch)

卸载xorg-driver-fglrx,问题解决。参考

升级到7.10之后,系统无法启动,并且控制台一直刷屏提示:

[ 227.338011] device-mapper: table: 254:1: linear: dm-linear: Device lookup failed

这时evms和新版的内核冲突,如果能用旧内核启动,进入系统aptitude删除evms即可;如果坚持用现有系统启动,那么将就着敲回车,会看到提示输入root密码进入维护,进去之后,删除evmsevms_activate两个文件,重启,刷屏错误提示就消失了,正常进入系统之后,再删除evms。参考device-mapper: table: 245:1: linear: dm-linear: device lookup failed[Bug 115616] Re: Device-mapper errors: dm-linear, lookup failed

合上笔记本屏幕时系统待机

修改/etc/acpi/events/lidbtn,把其中的action=/etc/acpi/lid.sh改成action/etc/acpi/sleep.sh sleep,参考在Thinkpad上安装Ubuntu笔记

Xfce桌面环境下firefox字体太小的问题

编辑~/.config/xfce4/Xft.xrdb,增加一行Xft.dpi: 96,指定桌面dpi为96就可以了,不用再修改~/.mozilla/firefox/Fwolf/chrome/userChrome.css,添加* {font-size: 12px !important;},在Xfce设置Window ManagerUser Interface Perferences中也不用把字体更改为12号,用默认的10号字就行了,效果完美()。

更新软件到指定版本,或者说是降级

sudo aptitude install subversion=1.4.2dfsg1-2

samba服务器端字符集设置及大于4G的文件

有时候客户端(无论是windows还是linux)连接samba会出现看不到中文的情况,除了设置客户端iocharset=utf8,codepage=cp936之外,服务器端还要在smb.conf 中的[global]段加上:

display charset = UTF-8
unix charset = UTF-8
dos charset = cp936

想通过samba访问大于4G的文件,挂载时需要加上lfs参数,比如下面这个用在fstab中的例子:

# In fstab
//server/fwolf    /path/to/local/mount/point smbfs username=fwolf%password,iocharset=utf8,codepage=cp936,dmask=700,fmask=600,uid=1000,gid=1000,lfs       0 0

查询网卡的实际连接速率

$ dmesg |grep eth0

[100167.238859] tg3: eth0: Link is down.
[100185.192321] tg3: eth0: Link is up at 1000 Mbps, full duplex.
[100185.192330] tg3: eth0: Flow control is on for TX and on for RX.

挂载iso文件之后,里面的中文文件名显示为问号 在mount选项中增加字符集选项即可:

mount somefile.iso /media/cdrom -o loop,iocharset=utf8

codepage选项就不用加了,加上了反而出错。

格式化分区后uuid变了,到哪里找去? 刚刚知道reiserfs的作者遇到了严重的法律问题,就把一个空分区从reiserfs重新又格式化成ext3了,但格式化之后无法重新mount了,提示uuid不对。不要紧,用vol_id /dev/sda6查询出设备的uuid,修改fstab,再重新mount就可以了。

使用正则表达式批量文件改名 rename -v ‘s/(\d+)$/$1.pdf/’ 071

dos和unix文件格式的转换 原来在包sysutils中,现在挪到tofrodos中来了,安装以后todos [file]是转换为dos回车换行格式,fromdos [file]是转换为unix回车换行格式。另外vi中^M就是“\r”。

类似“^[”这样的escape转换字符可以用Ctrl-V+ESC来录入。

Nvidia显卡终极安装指南(英文) 同样还不要忘记nvidia-glx-config enable也可以替代nvidia-xconfig命令,同时这里还有一个自动设置脚本(未测试),gforce2以前的老卡,可能还要在xorg.conf中添加:

Section “Extensions” Option “Composite” “Disable” EndSection

不然glx没法用,提示错误:

Xlib: extension “GLX” missing on display “:0.0”. Error: couldn’t get an RGB, Double-buffered visual

参考

mplayer在播放影片时如何截图? 如果使用其他截图软件,比如scrot,只能得到一张纯蓝色的图,取不到真正的图像,不过DarkToy为我们琢磨出了十分简便的方法: 在~/.mplayer/config中添加一句: vf=screenshot 这是告诉mplayer启动的使用启用这个参数,然后再在~/.mplayer/input.conf中设置一个未冲突的快捷键绑定(这个文件一般是不存在的,新建一个即可): c screenshot 0 那么在播放影片是按c键就可以截图了,据说如果后面那个数字0改为1,还会连续截图。

Java程序中的中文都是方块,怎么办? cd /usr/lib/j2sdk1.5-sun/jre/lib/fonts (也许根据jre版本不同位置略微变化) sudo mkdir fallback (不知道改个名字是否还能行) cd fallback sudo ln -s /usr/share/fonts/VeraSansYuanTi/VeraSansYuanTi-Regular.ttf (也可以是别的字体文件,ln -s不指定符号链接文件名的话,会自动命名为和所链接的文件名相同的文件) sudo mkfontdir (好像如果链接的字体文件已经正确配置在系统中了,后面这两步可以省略) sudo mkfontscale 参考:Ubuntu 5.10中文环境下安装FreeMind简介

iso文件与光盘刻录 创建ISO文件: cp /dev/cdrom image.iso 装载ISO文件: mount -o loop image.iso /mnt/cdrom 注意这种挂载的方法和挂载其他分区一样,存在字符集编码的问题,如果是要刻录光盘的话,还是使用k3b好了,这是个kde下的程序,不过安装一大堆包之后,也可以在gnome下运行。

光盘上中文文件名乱码的解决方法 编辑/etc/fatab,修改cdrom挂载的那一行,添加黑体部分的内容如下: /dev/cdrom /media/cdrom0 udf,iso9660 iocharset=utf8,user,noauto 0 0

nvidia卡提示glx错误怎么办? 错误信息:

Xlib: extension “GLX” missing on display “:0.0”. glxgears: Error: couldn’t get an RGB, Double-buffered visual.

原因在这里说了,部分nvidia老式显卡不被新的驱动支持,这种情况下要安装nvidia-glx-legacy,然后再nvidia-glx-config enable、重启X应该就可以了,这些老卡有:

NOTES SECTION * Below are the legacy GPUs that are no longer supported in the unified driver. These GPUs will continue to be maintained through the special legacy NVIDIA GPU driver releases. NVIDIA chip name Device PCI ID ——————————- ——————————- RIVA TNT 0x0020 RIVA TNT2/TNT2 Pro 0x0028 RIVA TNT2 Ultra 0x0029 Vanta/Vanta LT 0x002C RIVA TNT2 Model 64/Model 64 Pro 0x002D Aladdin TNT2 0x00A0 GeForce 256 0x0100 GeForce DDR 0x0101 Quadro 0x0103 GeForce2 GTS/GeForce2 Pro 0x0150 GeForce2 Ti 0x0151 GeForce2 Ultra 0x0152 Quadro2 Pro 0x0153 —————————————————————-

参考

如果播放flash没有声音怎么办? 试试这样:“sudo ln -fs /usr/lib/libesd.so.0 /usr/lib/libesd.so.1”,参考。 另一说为修改/etc/firefox/firefoxrc,加入(或修改)FIREFOX_DSP=”aoss”,aoss要视你的dsp而定,如esddsp,artsdsp,aoss(aoss要求已经安装了alsa-oss),也可以试一下auto,反正不能是none,参考

如何配置dns缓存实现上网加速 freebsd下可以用djbdns,ubuntu下我们可以用dnsmasq:“apt-get install dnsmasq”,然后编辑/etc/resolv.conf文件(dns服务器列表就保存在这里),在最前面加上一行:“nameserver 127.0.0.1”,搞定。注意网上有的文章把resolv.conf笔误为esolv.conf了,包括我参考的这篇hp笔记本上安装Ubuntu。dnsmasq设置完以后能看到本机监听53端口就说明成功了。

网页中的flash不能正确显示中文如何解决?

以前在breezy里,默认的中文GB字体是AR PL SungtiL GB, AR PL KaitiM GB,flash还能够显示出中文(尽管受到日文字体的干扰,字体混用在一起,不好看),到了dapper,默认中文字体变成了AR PL ShanHeiSun Uni(uming),flashplayer(7.23),找不到这个字体,所以中文根本显示不出来。据说flashplayer要出9.0了,到时候可能可以自动认出新的字体,不过在没出之前,大家可以用我的办法让它正确显示中文GB字体,原理就是把新字体伪装成flashplayer可以认出的字体。 cd /etc/defoma/hints sudo cp ttf-arphic-uming.hints custom.hints 编辑custom.hints文件,找到: X-Family = AR_PL_ShanHeiSun_Uni 一行,改成: X-Family = AR_PL_SungtiL_GB 然后运行: sudo defoma-font register-all custom.hints 以注册新的(假)字体,为避免日文字体的干扰,可以把日文字体反注册掉(可选): sudo defoma-font unregister-all ttf-kochi* 然后运行: sudo defoma-reconfigure 最后重启X,大功告成!

参考地址 讓 Firefox 的 Flash Player 能完整顯示中文!(非常详细的解释) {update @ 2006-9-2 现在由于ubuntu中删除了有版权问题的mkcfm(见bug report:mkcfm is needed for some fonts, but lacks an appropriate license for Ubuntu),这种方法不行了,在进行最后defoma-reconfigure的时候会出错:

Updating category cid.. Updating category cmap.. Can’t exec “/usr/bin/mkcfm”: No such file or directory at /var/lib/defoma/scripts/x-ttcidfont-conf.defoma line 791.

这种情况下就只能老老实实的把字体装上了: 查看flashplayer都支持那些中文字体: strings /usr/lib/mozilla-firefox/plugins/libflashplayer.so | grep ‘AR PL’ AR PL KaitiM GB AR PL SungtiL GB AR PL KaitiM Big5 AR PL Mingti2L Big5 看看源中可供安装的中文字体都有哪些: aptitude search arphic 安装其中简体的两个: apt-get install ttf-arphic-gbsn00lp ttf-arphic-gkai00mp 然后重启X。 但这样好像还是不行,我也没有办法了。 }

解决glxgears不显示帧数的问题 glxgears -printfps or glxgears -iacknowledgethatthistoolisnotabenchmark

简单的数码照片浏览和处理 gThumb比默认的eog(Eye of Gnome)要好用得多,不仅稳定,功能也多一些,旋转图片的时候不仅不会改变文件的大小(不知道eog动了什么我一个1m多的图片旋转之后就剩下200+k了),exif信息也能够保存下来,建议换掉。

利用hdparm提速硬盘 hdparm -X66 -d1 -m16 -c1 /dev/hda -X66 ATA33=66, ATA66=68,此参数需谨慎设定,不懂最好不要用。 -d1 开启dma -m16 设定MultSect为MaxMultSect -c1 将操作模式设定为 32-bits 测试性能:hdparm -tT /dev/hda 保存设置:hdparm -k1 /dev/hda 查看设置:hdparm [-i] /dev/hda 不过好像保存设置不起作用,干脆写入到/etc/hdparm.conf文件得了,hdparm.conf中,hdparm命令的每一个参数都有一个对应的option,并且有详细的说明和例子,参照着写就可以了,这才是一劳永逸的办法。

/dev/hda { dma = on io32_support = 1 mult_sect_io = 16 #transfer_mode = 66 }

这四个选项分别对应上面说明的四个参数,基本上也是最常用的。

rpm形式的安装包转换为deb形式 alien xxx.rpm

Linux下有什么数据库设计工具或者建模工具么? 有的人使用wine模拟运行PowerDesigner,但似乎效果不怎么好。如果使用的是Mysql数据库,除了phpMyAdmin可用之外,还有DBDesigner,以及mysql官方的workbench(尚未正式发布)。据说DBDesigner也支持Oracle。参考1参考2《DBDesigner的安装》

按照机器名查询局域网内其他机器的ip nmblookup cmp 按ip查机器名: nmblookup -A 192.168.0.1 似乎只能查windows主机

我现在使用FireFox 1.5.0.3,还是存在着严重的内存泄露,并且我一般不关机,都只是休眠,如果你的习惯和我一样的话,记得每天休眠的时候要关掉FireFox,不然它睡觉的时候还会吃内存的。

我正在通过smb挂载着一个网上邻居的共享目录,可是对方突然关机了,我这里操作异常,并且无法umount,怎么办? 有时候在这种情况下是无法umount的,会提示设备忙,但是可以使用smbumount,一般都会成功的。 sudo smbumount /media/share/xjl-f

使用mencoder制作影片剪辑(截取、转换) mencoder source.avi -ss 5:00 -endpos 40 -oac mp3lame -ovc xvid -xvidencopts bitrate=800 -o target.avi 注意-endpos指定的是相对于ss要截取的时间长度,而不是绝对时间坐标。-oac copy就是直接复制源中的音频,不再单独压缩。

如何才能浏览中文的pdf文件? 不管是evince,或者是epdfview,默认安装都无法查看中文pdf文件的,会有乱码,解决方法: distro:ubuntu linux dapper 1 sudo apt-get install evince 2 sudo apt-get install xpdf-chinese-simplified 3 你需要一个中文字体,simsun,fireflysun皆可。 cd /usr/share/fonts sudo ln -s < 你的字体存放的路径> < 字体名>.ttf //记住一定是.ttf!!!不能是*.ttc,或是别的什么。我开始就挂在这里了 比如:sudo ln -s /media/hda1/windows/fonts/simsun.ttc simsun.ttf //我开始就挂在这里了 4 打开/etc/xpdf/xpdfrc-chinese-simplefied 将displayCIDFontTT改为 displayCIDFontTT Adobe-GB1 /usr/share/fonts/simsun.ttf 即可! 5 现在你的xpdf,evince都能显示中文了!

用gedit编辑过的文件在vi下看,每行末尾都加了一个^M,怎么去掉? 这个^M其实是兼容dos的回车,也就是\r,使用下面的命令替换掉: :%s/\r//g 可以看出替换命令s是支持正则表达式的。

php5的两个ini文件 其实只有一个的,为什么要说两个呢?一个在/etc/php5/apache2下,这个是给apache用的,另外一个是在/etc/php5/cli下,这个是给命令行的php用的,比如php -f somefile.php,或者#! /usr/bin/php开头的shell script。有的时候使用cli调试脚本的时候经常会忘记设置后面那个。

如何将应用程序加到菜单中? 见例: sudo gedit /usr/share/applications/Firefox1.5.0.2.desktop [Desktop Entry] Name=Firefox Web Browser Comment=Browse the World Wide Web Exec=/opt/firefox/firefox Icon=/opt/firefox/icons/mozicon128.png Terminal=false Type=Application Categories=Application;Network;

最后一行是Network的,就在Internet菜单下,Office,就在Office菜单下,System的,就在System Tools菜单下,其他的可以参照现有.desktop文件摸索设置。

安装jre 1.5 首先你要下载官方的java1.5的运行时。现在最新的是java1.5update6 http://java.sun.com/j2se/1.5.0/download.jsp 下载下来的bin文件,为了方便,我们把它转成deb文件,方便使用。先下载工具 sudo apt-get install fakeroot java-package java-common 开始转换 fakeroot make-jpkg jre-1_5_0_06-linux-i586.bin 好,不出意外的话,就应该转换成功了。 开始安装: sudo dpkg -i sun-j2re1.5_1.5.0+update06_i386.deb 然后配置: sudo update-alternatives –config java 参见咸鱼的文章

关闭IPV6 修改/etc/modprobe.d/aliases文件,增加: alias net-pf-10 ipv6 off alias net-pf-10 off alias ipv6 off 注释掉:

alias net-pf-10 ipv6

再新建一个/etc/modprobe.d/bad_list文件,内容为: alias net-pf-10 off 然后重启。

Azureus bt下载的小问题 安装以后无法启动(没有图形窗口):sudo update-alternatives –config java 默认的是选4,改成1,就是带有jre5字样的就可以了。 提示窗口无法隐藏:关掉azureus重新打开就没事了。

MPlayer字幕乱码 編輯 ~/.mplayer/config 加上如下

font=/usr/share/fonts/truetype/arphic/bkai00mp.ttf subcp=gb2312 subfont-autoscale=2 subfont-text-scale=5

而我通过在gui中测试得到的结果则是还需要加上:

vo_doublebuffering = “no” sub_unicode = “no” sub_cp = “cp936” font_encoding = “unicode”

各位再根据自己的实际情况改变上述几项参数的值应该就可以了。

安装显卡驱动(尤其是ati卡) 安装驱动:apt-get install xorg-driver-fglrx 安装nvidia卡驱动:apt-get install nvidia-glx 初始化nvidia的显卡:nvidia-glx-config enable 初始化ati的显卡:aticonfig –initial (或是 aticonfig –initial=dual-head) aticonfig –overlay-type=Xv

另:不要忘记安装linux-restricted-modules,注意如果从386的内核升级到了686的内核,686的restricted modules也不要忘记安装,否则会出现ati显卡fglrx驱动能够正常安装,却始终打不开direct rendering的怪问题。

另:我的ibm笔记本以前使用mplayer的时候,只能选择X11(Ximage/Shm),并且没法全屏播放(全屏以后仍然是小画面),安装完上面的驱动,并且修改了mplayer的config文件之后,居然可以选择(X11/xv)模式了,并且能够十分流畅的全屏播放,真是太好了。只是在检测显卡的时候,如果不选ati而是选择fglrx的话,X就无法启动,现在也不知道显卡到底驱动起来没有。

播放电影,包括rmvb 咸鱼翻身还是咸鱼那里有一篇很好的介绍,针对dapper的,非常实用(备份地址)。不过最好首先还是把dapper的更新源扩展一下。大体总结如下: 首先安装dapper的gstreamer,dapper好像已经自带了,breezy麻烦些:

sudo apt-get install gstreamer0.10-*

下载安装w32codecs

wget -c ftp://ftp.nerim.net/debian-marillat/pool/main/w/w32codecs/w32codecs_20050412-0.0_i386.deb sudo dpkg -i w32codecs_20050412-0.0_i386.deb

这时再安装上mplayer就能够正常播放电影了,注意好像使用dapper flight7的源是没有mplayer的,扩展一下就好了。如果还想使用其他的播放器的话,把totem换成xine的后端:

sudo apt-get install libxine-extracodecs totem-xine mplayer-686 ffmpeg lame faad sox mjpegtools libxine-main1

有用的链接 升级到Dapper的源source

挂载fat32移动硬盘分区,不乱码,可读写 mount /dev/sda1 /media/sda1 -t vfat -o iocharset=utf8,rw,umask=0 umount /media/sda1;

挂载网上邻居共享的ntfs分区,中文不乱码,普通用户可读写 mount -o username=xjl%,iocharset=utf8,codepage=cp936,dmask=777,fmask=777 //xjl/f /media/share/xjl-f; ls /media/share/xjl-f/ umount /media/share/xjl-f; iocharset用utf-8不行,必须是utf8,codepage用936也不行,必须是cp936。 -t smbfs可以不写,自动识别。其他参数在前在后也没关系。 dmask和fmask如果不指定,那么root以外的用户就只能读取或者执行(r+x)。

linux挂载linux的samba 挂载其他linux(utf8文件系统编码,samba的unix charset也设置为utf-8了)的时候,和上面挂载共享的ntfs分区的方式是一样的: mount //neighbour/sharedir /media/mountpoint -t samfs -o codepage=cp936,iocharset=utf8 这是要尤其注意的地方,即使两个linux都是utf8编码,好像也必须指定cp936才能够正常浏览和创建中文名称的文件! 另外还要尤其注意,//neighbour/sharedir和//neighbour/sharedir/是不一样的,注意最后有个斜线“/”,有的时候加上了这个斜线samba会不认,报出如下错误:

tree connect failed: ERRDOS – ERRnosuchshare (You specified an invalid share name) SMB connection failed

在英文系统下安装输入法无法调出输入栏的问题 有可能是因为没有设置使用中文输入法的缘故,只需要修改/etc/environment文件,添加:

LANGUAGE=”en_US:en” LC_CTYPE=zh_CN.UTF-8 LANG=en_US.UTF-8 #GST_ID3_TAG_ENCODING=GBK

然后重启x就可以了。

这样即不影响现有的英文操作界面,也能够使用中文的输入法(尤其是scim了),最后一句好像没有用,fcitx可能要用到。

下载工具

一般推荐Download 4 XProZilla,其中prozilla好象是命令行方式使用的。

安装压缩工具7-zip

apt-get install p7zip 7za or 7z to run command

还有系统带的tar也不错。

关闭不需要的服务

这样应该能够让系统运行得快一些,尤其是在虚拟机中运行的时候,在X下System->Administration->Services中关闭是一种简单的方法,但不解决最终的问题。

首先apt-get install sysv-rc-conf,安装这个,然后运行,并调整如下: 只在S等级启用:acpi-support 关闭:anacron, apmd, atd, bluez-utiles, fetchmail, hotkey-setup, hplip, pcmcia, powernowd, ppp, rsync. 如果是笔记本电脑,下面几个就不要关闭了:hotkey-setup, pcmcia, powernowd

这样应该能稍微快一些吧,错关了也没有关系,当需要的时候还可以再打开嘛。

安装编译环境 apt-get install build-essential

相关阅读:

[Ubuntu]明明白白安装中文字体

Ubuntu 6.06 dapper对中文的支持应该说是一向不错的,包括现在默认安装就包含了scim输入法。然而,一般安装的ubuntu虽然能够显示、输入中文了,但总觉得所显示的中文像歪瓜裂枣,很是别扭。这是很无奈的,也不是linux的错,这是因为现在几乎没有免费的中文字体库来给我们用,大家平时使用习惯了的winxp里面的宋体、还有方正排版系统里面的仿宋体、公文中的方正小标宋等等,这些字体都是商业公司开发出来用在自己的产品中的,是有版权的,所以linux不能拿过来就用。如果你还没有听说过字体有版权的话,上网搜索一下“胡万进”吧,这位老兄就是当年在微软从事字体制作的一位员工,他所制作的字体的版权就是归微软公司所有。我们国家虽然对IT产业非常关注,但是更关注windows,对开源社区和自由软件的支持几乎没有,直到今天也没有投资开发出一套免费的字体供大家使用。不过幸好有怀着共产主义信念的好同志,为我们提供了免费的替代方案,现在我们可以使用圆体美化,还有开源的文泉驿域名2)可以用。

本文则是参考如何使用xp带的字体来进行中文美化?一文,实践中文字体的安装,并对ubuntu的字体体系更加深入的了解一下,这样以后再安装任何字体就都不怕了。

一、准备字体文件

我一直认为,如果我拥有了一套windows xp的使用权(通过oem方式),那么我就同时拥有了对这份windows产品的只用于我个人的任意使用权,这里面包括了对其中的字体的使用权。所以,本文中将winxp的字体拷贝到linux下使用的做法,应该是没有侵权的。

windows的字体一般存放在c:\windows\fonts目录下,我拷贝到linux下的字体有:

simfang.ttf 仿宋体
simhei.ttf 黑体
simkai.ttf 楷体
simsun.ttf 宋体和新宋体,原文件名simsun.ttc
tahoma.ttf tahoma字体
tahomabd.ttf tahoma字体的粗体形式
verdana.ttf verdana字体
verdanab.ttf verdana字体的粗体形式
verdanai.ttf verdana字体的斜体形式
verdanaz.ttf verdana字体的粗体+斜体形式

拷贝过来的字体文件放在了/home/fwolf/tools/fonts目录下。

二、将字体加入到linux的可使用字体中

首先把字体文件链接到存放字体的目录中

$ cd /usr/share/fonts
$ ln -s /home/fwolf/tools/fonts xpfonts
$ cd xpfonts
$ mkfontscale
$ mkfontdir

这样作和把字体拷贝到 /usr/share/fonts 的一个目录下的效果是一样的。后面的两个 mkfont 命令是生成 xpfonts 目录下所包含的字体的索引信息。然后运行 fc-cache 命令更新字体缓存:

$ fc-cache

现在,应该说linux就可以使用这些新装上的中文字体了,看一下openoffic里的截图吧:

linux中OpenOffice下的几种winxp字体

其中仿宋体的字体名是FangSong_GB2312,黑体是SimHei,楷体是KaiTi_GB2312,宋体是SimSun,字体名暂时都不是中文的。

三、修改/etc/fonts/fonts.conf的字体渲染顺序

让我们一边修改,一边分析fonts.conf这个文件的内容吧,注意部分注释(<–和–>之间的内容)和无关紧要或者重复的内容我将跳过不再解释。

<?xml version="1.0"?> 声明这个文件是一个xml文档
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> xml文档的格式声明(dtd = document type define)
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig> xml文件需要的根节点
<!--
   DO NOT EDIT THIS FILE.
   IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
   LOCAL CHANGES BELONG IN 'local.conf'.

文档中提示不要手工修改fonts.conf,个人的设定可以写入local.conf文件,并且会自动被fonts.conf读入,不过我现在还不知道怎么创建这个文件,等知道了再公布出来吧,现在先拿fonts.conf开刀,反正预先已经作了备份。

   <dir>/usr/share/fonts</dir>
   <dir>/usr/X11R6/lib/X11/fonts/Type1</dir> <dir>/usr/local/share/fonts</dir>
   <dir>~/.fonts</dir>

所有字体文件存放的位置,其中第一个就是我们刚才放字体文件的目录/usr/share/fonts。

<!--
  Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
   <match target="pattern">
      <test qual="any" name="family">
         <string>mono</string>
      </test>
      <edit name="family" mode="assign">
         <string>monospace</string>
      </edit>
   </match>

将本文件中的别名mono替换成全称monospace,这是xml的一个自动替换声明,使用别名的目的应该是为了简化书写或者维持对旧版本的兼容。后面还有几个替换就不再一一介绍了。

<!--
  Serif faces
 -->    <alias>
      <family>Bitstream Vera Serif</family>
      <family>Vera Sans YuanTi</family>                        <!--  added by lifesinger-->
      <family>Times</family>
      <family>Times New Roman</family>

Serif字型将要使用的字体顺序。当要显示Serif字型的内容时,就从下面这个列表中选择字体,匹配顺序是自上而下。可以看到已经安装的圆体美化再这里作了修改。如果我们想把宋体作为首选,就在Bitstream Vera Serif字体前面比葫芦画瓢加上一行就可以了。

至于什么是Serif字型,以及Sans-serif字型,可以看一下细说字体 Sans Serif 与 Serifserif vs sans serif这两篇文章,说明的很详细。我觉得把他们叫做字型或者字族,相对于字体来说,更贴切一些。

下面的Sans-serif faces、Monospace faces段中处理方式相同。

<!--
  If the font still has no generic name, add sans-serif
 -->
   <match target="pattern">

又是三个替换,大概意思是如果上面的字体匹配还不成功,就尝试使用sans-serif、serif、monospace的默认字体来替换,最后如果还替换不成功,强制使用sans-serif字体。(不知道这么理解是否正确)

<!--
  Some Asian fonts misadvertise themselves as monospaced when
  in fact they are dual-spaced (half and full).  This makes
  FreeType very confused as it forces all widths to match.
  Undo this magic by disabling the width forcing code -->
   <match target="font">
      <test name="family"><string>GulimChe</string></test>
      <edit name="globaladvance"><bool>false</bool></edit>
   </match>

一些亚洲字体实际使用了等宽字体,但是却没有明确的声明,这段就是为了兼容这个进行的处理,保持不变即可。

<!--
   The Bitstream Vera fonts have GASP entries suggesting that hinting be
   disabled below 8 ppem, but FreeType ignores those, preferring to use
   the data found in the instructed hints.  The initial Vera release
   didn't include the right instructions in the 'prep' table. Fix this
   by disabling hinting manually at smaller sizes (< 8ppem)
 -->

修正Bitstream Vera字体在小于8点的时候的显示问题,保持不变即可。

<!--
  Load local system customization file
 
   <include ignore_missing="yes">local.conf</include>
-->

加载配置文件local.conf,下面的~/.fonts.conf也是一样。

<!--
  Provide required aliases for standard names
-->
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Bitstream Vera Serif</family>

又是三个系列字型的字体别名,不知道这个和前面的类似设置是怎么个关系,大概前面设置的是备选字体,这里是推荐字体?不过照例把我们的SimSun加进去。

<!--
 Artificial oblique for fonts without an italic or oblique version
 -->

对没有斜体字的字体的处理方法,保持不变即可。

<!--
 Synthetic emboldening for fonts that do not have bold face available
 -->

没有黑体字的字体的处理方法,保持不变即可。

<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
 -->

Unicode编码中在所有字体中都应该显示为空的编码表,保持不变即可。

<!--   Rescan configuration every 30 seconds when FcFontSetList is called
 -->

每隔30秒钟就重新检查一下本设置文件(看设置改变了没有),保持不变即可。

至此,标准的配置文件就结束了,我们需要作的主要修改也都完成了。重启X应该就能看到宋体中文的界面了。不过在fonts.conf还可以作一些其他的字体处理设置,这个在圆体美化所带的那个fonts.conf中有例子,比如:

   <!-- Win XP 效果 -->
<match target="font">
   <test name="family"><string>Vera Sans YuanTi</string></test>
   <edit name="globaladvance"><bool>false</bool></edit>
</match>

这就是指明在对Vera Sans YuanTi字体的处理中,globaladvance参数设置为false,其他的设置也多是这种语法,具体的含义和效果我就不知道了:)。

四、中文字体显示优化

按照上面的方法配置好以后,宋体能够显示了,但是字体有些发虚,那么一种简单的方法就是在 系统->首选项->字体(system->preference->font) 中选择单色(Monochrome),但是这样所有的字体包括英文字体都会有一点点的小锯齿,那么替代的方法就是通过修改fonts.conf,去掉宋体的反锯齿,并且用黑体替代宋体的粗体。在fonts.conf中添加:

<!-- 用黑体替代宋体的粗体 -->
<match target="pattern">
    <test name="family"><string>SimSun</string></test>
    <test name="weight" compare="more_eq"><const>bold</const></test>
    <edit name="family" mode="assign"><string>SimHei</string></edit>
</match>
<!-- 关闭宋体的AA -->
<match target="font">
   <test qual="any" name="family"><string>SimSun</string></test>
   <edit name="antialias" mode="assign"><bool>false</bool></edit>
</match>
<!-- 解决不能识别中文字体名称的问题 -->
<match target="pattern">
    <test name="family"><string>宋体</string></test>
    <edit name="family" mode="assign"><string>SimSun</string></edit>
</match>
<match target="pattern">
    <test name="family"><string>新宋体</string></test>
    <edit name="family" mode="assign"><string>SimSun</string></edit>
</match>
<match target="pattern">
    <test name="family"><string>仿宋_GB2312</string></test>
    <edit name="family" mode="assign"><string>FangSong_GB2312</string></edit>
</match>
<match target="pattern">
    <test name="family"><string>楷体_GB2312</string></test>
    <edit name="family" mode="assign"><string>KaiTi_GB2312</string></edit>
</match>
<match target="pattern">
    <test name="family"><string>黑体</string></test>
    <edit name="family" mode="assign"><string>SimHei</string></edit>
</match>

为什么要用黑体替代宋体的粗体呢,因为宋体字体其实是不含粗体的,windows下也是,只是windows采用了更高级一些的方法来间接实现了宋体的粗体而已。

小结

以上就是简单的中文字体设置方法,和我对fonts.conf的简单理解,希望能对大家有用,也希望过路大侠指正错误和不足之处。另外还可以参考一下一个详细的汉化美化方案(freetype/fontconfig/xft),分析得比我深入多了。

参阅:

[ubuntu]安装vmware时找不到c header files的小问题

很多人都是用xp作主系统,然后用vmware虚拟一个linux学习,我现在的做法却恰恰相反,我用ubuntu作主系统,然后虚拟一个xp用于工作 :)。

vmware下载和安装就不说了,安装完成之后,运行vmware-config.pl的时候,会有一步是询问内核的头文件在哪里:

What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]

由于ubuntu 6.06 dapper的内核版本是,2.6.15,所以就没法找到,网上说这是vmware自己的问题,到http://ftp.cvut.cz/vmware/下载一个vmware-any-any-updatexxx.tar.gz装上,然后再次运行vmware-config.pl就能够找到正确的地址了:

What is the location of the directory of C header files that match your running kernel? [/lib/modules/2.6.15-22-386/build/include]

参考1参考2(这里还有关于安装鼠标的讨论),参考3

可怜我一开始没有安装linux-headers,而是傻傻的下载安装了一个linux-source-2.6,70多M,下载了1个多小时啊。。。 (注意安装的headers版本要和当前运行的一样,386和686版本要分清)

🙂

vmware 5.5.1 19175 linux 版的注册码: J3E6J-V6G4M-Y84DY-4YXQQ GC4K9-FMC0A-1A0FV-4YEX2

附上一张截图,哈哈。

在linux下运行vmware的截图

update @ 20060510: 我安装使用的xp是一个什么秋无痕告别2004什么的版本,里面有4种安装方式,自动/手动安装免激活版、自动/手动安装零售版,一开始选择两个手动安装的版本,一到同意完协议,“正在安装设备”的时候,就停住了,剩余37分钟,再也不前进了,后来偶然选了一个自动安装零售版的,居然就没事了。

update @ 2007-02-12

ubuntu升级到edgy之后,vmware又罢工了(另外一台机就没事),提示vmmon编译什么的错误,就像这样,解决方法为:到/usr/lib/vmware/modules/source下,新建一个脚本:

for foo in vmmon vmnet; do 
    tar xf $foo.tar
    perl -pi -e 's,-Werror,-DKBUILD_BASENAME=\\"\$\(DRIVER\)\\" \\\n\t-Werror,g' ${foo}-only/Makefile.kernel
    mv ${foo}.tar ${foo}.tar.vm
    tar cf ${foo}.tar ${foo}-only
done

赋予执行权限,执行,然后再vmware-config.pl就可以了。 参考一参考二(我手工改就不行,用脚本就可以了,怎么回事捏?)。

Update @ 2007-04-24

升级到feisty之后,内核升级到了2.6.20-15,vmware又找不到c header了,到这里再下载一个any-any补丁,运行后就可以了。

Update @ 2007-11-03

升级到ubuntu 7.10 Gutsy之后,也是需要安装这个补丁,补丁也升级了:http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update113.tar.gz,参见Installing VMware Products on Unsupported Linux Distributions

Update @ 2008-06-23

升级到Ubuntu 8.04 Hardy之后,安装补丁http://blog.creonfx.com/temp/vmware-any-any-update-116.tgz,参见How-to Install VMware Player / Workstation on 2.6.24 Kernel,不过配置正常后运行出现错误:

/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libpng12.so.0/libpng12.so.0: no version information available (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware/bin/vmware: /usr/lib/vmware/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)

按照回复中的内容更改了几个so文件之后,错误更离谱了,无从下手,只好重新安装了个VMware Player 2.0.3.80004 For Linux,config时依然需要应用上面哪个any-any补丁,然后就能跑起来了。

后来安装VMware Workstation 6.5 Build 91182 Beta for Linux就顺利多了,一下就成功了,从官网上可以申请到30天试用的序列号。

vmware功能丰富但每次升级内核以后配置都很麻烦,virtualbox升级方便些但少一点功能,真的是很难选择呢。

参考