页面

2009/03/29

Debian Linux LVM 配置手册


作者: 本文主要通过实际部署和配置LVM. (Debian 5.0环境) 希望能与大家分享一些经验.文章在不断的修订与完善中.有错误欢迎大家批评指正.谢谢. (文章写的不累.排版很辛苦.受不鸟啦~)

LVM 介绍:

LVM - Logical Volume Manager 是Linux系统下最强大的磁盘管理技术之一.它将您从不得不思考物理容量中解脱出来,代之以逻辑形式来思考这些容量. 当您需要考虑如何替用户数据和系统文件分配空间的时候,LVM可以让您彻底忘记传统的分区做法.

简单地来说,LVM就是将众多物理设备组合成一个大的虚拟设备,用户只需思考如何在虚拟设备上做传统的空间分配策略,而将物理设备的管理交由LVM自己去处理.这个由物理设备组合所成的虚拟设备称为卷组(Volume Group),简称为VG;而用户在卷组VG上所划分的磁盘空间则称为逻辑卷(Logical Volume),简称为LV;而原始物理设备必须经过初始化处理才能加入卷组集合,这种经过特别处理的原始设备或磁盘空间则称为物理卷(Physical Volume),简称为PV.

LVM磁盘空间管理系统允许您在需要的时候重新调整大小, 这也就意味着在管理磁盘空间资源方面, 您将获得极大程度的自由. 基本上这是很有诱惑力的, 但您应该留心硬盘出错的情况,如果您没有在LVM管理中为出现这种情况而做好计划,那么您可能会丢失大量数据.

LVM 术语:

PV - Physical Volume 物理卷,例如一个硬盘,或一个Software RAID设备;
VG - Volume Group 卷组,将一组物理卷收集为一个管理单元;
LV - Logical Volume 逻辑卷,等同于传统分区,可看作便准的块设备,以容纳文件系统;
PE - Physical Extent 物理块,划分物理卷的数据块;
LE - Logical Extent 逻辑块,划分逻辑卷的数据块;

LVM 结构:

为了让大家了解关于LVM的概念和结构.实现方式等.作者花了整整一天时间画了一个图.
突然发现自己的”设计”水准很前卫很潮流. (谁说图片不好看谁就不要看文章了! :-))

说明: /boot 这个挂载分区不能存在于VG卷组里.所以我们一般是建议单独分区.

使用LVM的基本步骤如下:

1. 安装lvm2 ( apt-get install lvm2 )

2. 使用fdisk分区指定的物理硬盘

3. 使用lvm管理工具进行lvm配置 (建立PV / VG / LV)

4. 格式化已经设置好的LV逻辑卷.挂载到指定目录.

5. 关于如何增加/删除/修改LV逻辑卷大小.请期待第2季.

LVM 配置步骤:

// 查看物理磁盘状态 - 硬盘(容量1GB) /dev/sdb 已经识别

Debian:/home/reistlin# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0×0002db3a

Device Boot Start End Blocks Id System
/dev/sda1 1 1033 8297541 83 Linux
/dev/sda2 1034 1305 2184840 82 Linux swap / Solaris

Disk /dev/sdb: 1073 MB, 1073741824 bytes
128 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 4096 * 512 = 2097152 bytes
Disk identifier: 0×00000000

Disk /dev/sdb doesn’t contain a valid partition table

// 使用 fdisk 对 /dev/sdb 分区

Debian:/home/reistlin# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0×4e896764.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0×0000 of partition table 4 will be corrected by w(rite)

Command (m for help): new
Command action
e extended
p primary partition (1-4)

p

Partition number (1-4): 1
First cylinder (1-512, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-512, default 512):
Using default value 512

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

// 查看分区后的物理磁盘信息 - /dev/sdb1 状态正常

Debian:/home/reistlin# fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0×0002db3a

Device Boot Start End Blocks Id System
/dev/sda1 1 1033 8297541 83 Linux
/dev/sda2 1034 1305 2184840 82 Linux swap / Solaris

Disk /dev/sdb: 1073 MB, 1073741824 bytes
128 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 4096 * 512 = 2097152 bytes
Disk identifier: 0×4e896764

Device Boot Start End Blocks Id System
/dev/sdb1 1 512 1048560 83 Linux

// 进入 LVM 模式

Debian:/home/reistlin# lvm

// 查看 LVM 磁盘状态 - 目前没有任何 LVM 磁盘信息

lvm> lvmdiskscan
/dev/ram0 [ 8.00 MB]
/dev/ram1 [ 8.00 MB]
/dev/root [ 7.91 GB]
/dev/ram2 [ 8.00 MB]
/dev/sda2 [ 2.08 GB]
/dev/ram3 [ 8.00 MB]
/dev/ram4 [ 8.00 MB]
/dev/ram5 [ 8.00 MB]
/dev/ram6 [ 8.00 MB]
/dev/ram7 [ 8.00 MB]
/dev/ram8 [ 8.00 MB]
/dev/ram9 [ 8.00 MB]
/dev/ram10 [ 8.00 MB]
/dev/ram11 [ 8.00 MB]
/dev/ram12 [ 8.00 MB]
/dev/ram13 [ 8.00 MB]
/dev/ram14 [ 8.00 MB]
/dev/ram15 [ 8.00 MB]
/dev/sdb [ 1.00 GB]
2 disks
17 partitions
0 LVM physical volume whole disks
0 LVM physical volumes

// 查看 LVM 配置文件 - dump 模式

lvm> dumpconfig
devices {
dir=”/dev”
scan=”/dev”
preferred_names=[]
filter=”a/.*/”
cache_dir=”/etc/lvm/cache”
cache_file_prefix=”"
write_cache_state=1
sysfs_scan=1
md_component_detection=1
ignore_suspended_devices=0
}
activation {
missing_stripe_filler=”/dev/ioerror”
reserved_stack=256
reserved_memory=8192
process_priority=-18
mirror_region_size=512
readahead=”auto”
mirror_log_fault_policy=”allocate”
mirror_device_fault_policy=”remove”
}
global {
umask=63
test=0
units=”h”
activation=1
proc=”/proc”
locking_type=1
fallback_to_clustered_locking=1
fallback_to_local_locking=1
locking_dir=”/var/lock/lvm”
}
shell {
history_size=100
}
backup {
backup=1
backup_dir=”/etc/lvm/backup”
archive=1
archive_dir=”/etc/lvm/archive”
retain_min=10
retain_days=30
}
log {
verbose=0
syslog=1
overwrite=0
level=0
indent=1
command_names=0
prefix=” ”
}

// 创建 Physical Volume (PV)

lvm> pvcreate
Please enter a physical volume path
lvm> pvcreate /dev/sdb1
Physical volume “/dev/sdb1″ successfully created

// 查看 Physical Volume (PV) 状态

lvm> pvdisplay
CTRL-c detected: giving up waiting for lock
— Physical volume —
PV Name /dev/sdb1
VG Name vg_test
PV Size 1023.98 MB / not usable 3.98 MB
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 255
Free PE 0
Allocated PE 255
PV UUID SwfyW5-veGN-1Ptd-VIUo-0I3I-CdVB-QF7BwC

// 再次查看 LVM 磁盘状态

lvm> lvmdiskscan
/dev/ram0 [ 8.00 MB]
/dev/ram1 [ 8.00 MB]
/dev/root [ 7.91 GB]
/dev/ram2 [ 8.00 MB]
/dev/sda2 [ 2.08 GB]
/dev/ram3 [ 8.00 MB]
/dev/ram4 [ 8.00 MB]
/dev/ram5 [ 8.00 MB]
/dev/ram6 [ 8.00 MB]
/dev/ram7 [ 8.00 MB]
/dev/ram8 [ 8.00 MB]
/dev/ram9 [ 8.00 MB]
/dev/ram10 [ 8.00 MB]
/dev/ram11 [ 8.00 MB]
/dev/ram12 [ 8.00 MB]
/dev/ram13 [ 8.00 MB]
/dev/ram14 [ 8.00 MB]
/dev/ram15 [ 8.00 MB]
/dev/sdb1 [ 1023.98 MB] LVM physical volume
1 disk
17 partitions
0 LVM physical volume whole disks
1 LVM physical volume

// 创建 Volume Group (VG)

lvm> vgcreate vg_test
Please enter physical volume name(s)
lvm> vgcreate vg_test /dev/sdb1
Volume group “vg_test” successfully created

// 查看 Volume Group (VG) 状态

lvm> vgdisplay
— Volume group —
VG Name vg_test
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 1020.00 MB
PE Size 4.00 MB
Total PE 255
Alloc PE / Size 0 / 0
Free PE / Size 255 / 1020.00 MB
VG UUID Dbm7gQ-HDao-0z2Z-2u3q-XK9A-bmEv-ES3qC0

// 创建 Logical Volume (LV) - 如果需要使用全部VG空间. 输入 -l 的值.
// 的值可以使用 vgdisplay 命令查看: Total PE = 255

lvm> lvcreate -l 255 vg_test -n lv_test
Logical volume “lv_test” created

// 查看 Logical Volume (LV) 状态

lvm> lvdisplay
— Logical volume —
LV Name /dev/vg_test/lv_test
VG Name vg_test
LV UUID l3GUct-M3nG-m837-wOe2-4EWo-ZPU6-xskaq8
LV Write Access read/write
LV Status available
# open 0
LV Size 1020.00 MB
Current LE 255
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 254:0

// 输入 exit 退出 LVM 配置模式. Ext3 格式化 lv_test 逻辑卷

Debian:/home/reistlin# mkfs -t ext3 -j /dev/vg_test/lv_test
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
65280 inodes, 261120 blocks
13056 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

// 挂载 lv_test 逻辑卷到 /mnt 目录. 你也可以挂载到 /home 目录

Debian:/home/reistlin# mount /dev/vg_test/lv_test /mnt
Debian:/home/reistlin# cd /mnt

// 测试文件读写. Reistlin.Com. OKay.

Debian:/mnt# vim Reistlin.Com
Debian:/mnt# cat Reistlin.Com
Welcome to Reistlin.Com

( *更新中* 原始链接: http://www.reistlin.com/blog/493)

2009/03/28

GMChess 0.10发布

主流的GNOME和KDE桌面都自带了丰富的棋牌类游戏,可是却一直少一款“中国象棋”。

现在这个局面要改变了,lerosua兄在继网络电视软件GMLive之后,又给大家带来了一款“中国象棋”。

以下文字引自官方网站(原文:GMChess 0.10发布):

正值svn版本号100,发布GMChess的第一个版本0.10吧。目前只有读谱功能,支持qq象棋,联众象棋,中游象棋,象棋演播室等软件生成的棋谱。

使用方法:选菜单->文件->打开,选择相应的棋谱文件即可
或者直接将棋谱拖到棋盘上即可打开。

本软件基于gtkmm库,以及开源程序象棋巫师的源码。因此非常感谢象棋巫师的作者黄晨先生,他的程序及网站给我提供了无限的资源及灵感。同时也感谢本软件另一作者wind,虽然他现在忙于工作而隐身中。

当然本人能力及精力有限,程序存在bug是难免的。目前gmchess也是在发展之中。0.1x系列的计划是完善读谱功能,因此大家如果在使用中发 展读的谱不正常显示,可将谱一起发来(lerosua+gmchess at gmail.com)。而对电脑对战将会出现在0.2x系列的版本号中,请静静等待。

Linux下终将会有更多更好的象棋软件的,谢谢。

另外,征集程序中文名。欢迎各种意见及建议。

下载地址: gmchess-0.10


termcolor -- 用 Python 打出彩色终端信息

终端打印的消息可以是彩色的,不过着色的语法确实诡异了一些,也不好阅读。

termcolor 是个 Python 模块,可以帮你输出终端的彩色字,当然语法就好看多啦~

安装 termcolor 之后,只要: 

from termcolor import colored

然后就可以使用 colored 这个方法,对消息进行着色了,比如:

print colored('Hello, World!''red')

就会打印出红色的 Hello World!。

除此之外,还可以翻转字体的背景和前景色;用 on_xxx 这样的属性打印出背景和字体颜色不同的消息:

 

 如果经常要用到复杂的颜色组合,可以用 lambda 来把参数抽象出来:

red_on_cyan = lambda x: colored(x, 'red''on_cyan')
print red_on_cyan('Hello, World!')

很方便吧~ 

termcolor 的主页在: http://pypi.python.org/pypi/termcolor/0.1.1

遵循“署名-非商业用途-保持一致”创作共用协议

dvtm: 平铺式终端管理器

dvtm 将诸如 Awesome、dwm 这类平铺式窗口管理器的设计思想引入虚拟终端/控制台,从而使虚拟终端/控制台也具有类似的平铺式窗口管理功能。dvtm 包括 Vertical Stack Tiling、Bottom Stack Tiling、Grid、Fullscreen 等布局样式,你可以在打开的多个窗口间自由切换,也可以调整窗口的大小。

dvtm

包含三个窗口的 dvtm

dvtm 可从其主页下载,除了源码包外,也包括适用于 Archlinux、Debian、Ubuntu 等 Linux 发行版的安装包。

dvtm


xclip: 管理 X 粘贴板

在 X 系统里面,从一个窗口复制一段文字到另一个窗口,有两套机制,分别是 Selections 和 cut buffers。

常用的 copy & paste 是利用的 cut buffers 机制;另外用鼠标选中一段文字,然后在另一个窗口按鼠标中键实现复制,利用的是 selections 机制。selection 又可以分为 master 和 slave selection。

当用鼠标选中一段文件,这段文字就自动被复制到 master selection。然后在另一个地方按鼠标中键,就自动把 master selection 的内容粘贴出来。

当你想复制少量文字的时候,两种方法都是很方便的。但是当复制大段文字的时候就挺麻烦。另外就是你可能会频繁的执行一些复制粘贴工作,不停的用鼠标选中文字,然后再粘贴。这是对手指的折磨。

我忍受不了这种折磨,所以发现了 xclip, 方便的管理 X selections 里面内容的工具。

比如如下命令就把文件 /etc/passwd 的内容复制到 X master selections 里面了。

xclip -i /etc/passwd 

然后到别的地方就能复制出来,利用鼠标中键。或者是更舒服的 shift+insert。 我现在最常用的方法是通过键盘绑定来管理 X master selections 的内容。比如 alt+F1 就能把我的 ~/f1 的内容复制到 X master selections,alt+F2 复制 ~/f2 的内容。这样就能把你需要经常用到的内容方便的进行复制粘贴。比如常用的密码啥的。

xclip

2009/03/01

在Ubuntu 8.10里创建个人加密文件夹

原文 《How to Create a Private Encrypted Folder On Ubuntu 8.10 (Intrepid)》, 来自Ubuntu Geek

eCryptfs是一个兼容POSIX的商用级堆栈加密Linux文件系统。它能提供一些高级密钥管理规则。eCryptfs把加密元写在每个加密文件的头中,所以加了密的文件即使被复制到别的主机中也可以使用密钥解密。把 eCryptfs 当作是一种 “gnupgfs” 好了,eCryptfs 是Linux 文件系统的一种。他的内核组件已经是2.6.19以后的Linux内核的一部分。

Ubuntu 8.10 Intrepid中安装eCryptfs 

sudo aptitude install ecryptfs-utils

安装完毕之后您需要创建加密目录:

mkdir ~/Personal

用下面这条命令来需要确立其他人无法访问这个文件夹:

chmod 700 ~/Personal

把ecryptfs挂载到 Personal 文件夹:

sudo mount -t ecryptfs ~/Personal ~/Personal

过程中系统将提示您回答几个问题:

为新创建的文件选择密钥类型:

按 “1″ 选择挂载密码

输入并确认您的挂载密码。

选择加密的位数。

默认选项是[16]。如果您不知道应该选啥,直接按回车来选择默认值。然后设置 plaintext passthrough (这个实在不知道咋翻译合适)

如果您想在文件夹中使用未加密文件清选择 ‘Y’ 否则选 ‘N’.

现在在您的主文件夹中应该能看到已经挂载了一个Personal驱动器。

测试您的加密文件夹

在您的加密文件夹中添加一些文件。

卸载文件夹。

sudo umount ~/Personal

现在您可以试着打开Personal文件夹来查看您的文件了。

为您的个人目录创建启动器

如果您想让创建个人文件夹的过程更加容易,您可以创建一个启动器。在桌面上点击鼠标右键->创建启动器。

输入如下内容:

类型(T):终端中的应用程序l
名称(N):个人文件夹 (可自定义)
命令(C):sudo mount -t ecryptfs /home/ruchi/Personal /home/ruchi/Personal
key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n  (Replace ruchi with your own username)

下次如果您想挂载您的Personal文件夹就只需要点击这个启动器了。它将会打开一个终端询问您的挂载密码,只要验证通过就会看见主文件夹下面挂载了Personal文件夹。

文章来自:http://www.lirui.name/post/154.html

在 Ubuntu 中使用 mplayer 下载流媒体

用mplayer下载流媒体文件的命令格式:

mplayer -dumpstream -dumpfile 本地文件名 rtsp://连接地址

或者:

mplayer -dumpstream -dumpfile 本地文件名 mms://连接地址
文章来自:http://www.lirui.name/post/31.html

在Ubuntu中清空 DNS 解析缓存

原文链接:《 Howto clear/Flush DNS Cache in Ubuntu 》
首发网站: Ubuntu Geek
原文作者: Admin ?!

------------
某些发行版会在后台运行一个域名解析缓存服务。当然,也有发行版没有这个服务。如果您的Ubuntu后台有这个程序,那么您可以用重新启动 nscd 服务的方式来清空缓存。 

为啥要清空缓存乜?

大多数的 DNS 客户端会把域名解析的结果缓存到本地,这样可以提升对于同一个地址的访问速度。当您打开一个单页面的时候,通常会有多次对同一个域名的访问请求。基本上每个文件、图片、样式表……这些都是在同一个页面内部的对同一个域名的 DNS 解析请求。

所以如果您已经在本地缓存了不正确的 DNS 条目,那么您需要清空您的缓存来使 DNS 客户端提出新的 DNS 请求并更新解析结果。当然,您也可以等缓存的 DNS 条目过期以后让系统自动冲掉该条目……这通常需要24个小时。

在 ubuntu 中冲掉 DNS 缓存的方式是重新启动 nscd 守护程序。

安装 nscd 的方式是在命令行中运行这条命令:

sudo aptitude install nscd

在Ubuntu中清 DNS 缓存的命令是:

sudo /etc/init.d/nscd restart


用Playdeb在Ubuntu里安装游戏

原文:《Playdeb - Installing Games in Ubuntu made Easy 》 来自 UbuntuGeek

Playdeb是一个将最新游戏打包成Ubuntu应用程序的项目,与2008年9月1日正式启动。在Playdeb的帮助下,游戏的安装和更新将变得十分简便。Playdeb有自己的软件源,您只需要点击列表中的某个游戏就可以开始安装。

注意:- 这个程序仍然处于beta阶段,安装这些游戏有可能会损害您的系统。

通过如下步骤把playdeb的源加入您的系统:

请打开 系统 > 系统管理 > 软件源

在窗口中选择第三方软件标签。

点击 添加

把这个加进去:

deb mirror://www.getdeb.net/playdeb-mirror/hardy/// hardy/

关闭并刷新您的软件源列表。

现在,如果您要安装游戏程序,只需要打开新立得,查找您要装的游戏,选中并安装就搞定了!非常简单。

另外

在gusty以后的版本中安装游戏需要AptURL,而且还需要装一个更新版的Playdeb。

首先您需要从 这里 下载 AptURL 。

用这条命令安装:

sudo dpkg -i apturl_0.2.6-0~getdeb0_all.deb

然后从 这里 下载Playdeb包  (如果你碰到一个确认对话框,请按 Y)

用这行命令安装:

sudo dpkg -i playdeb_0.1-0~getdeb1_all.deb

可用游戏列表

点击 这里 察看可用的游戏列表。

向研发人员提交您的想法或者Bug

Playdeb才刚刚开始,如果您有什么好主意请提交到 这里 ,或者您发现了bug,发送到 这里 。

-------------

里面的两个FPS游戏还不错,联网奋战中……

JMPlayer:正在开发中的音乐播放器


jmplayer这是一款由Ubuntu中文论坛的zshxiong在业余时间开发的播放器。

虽然Linux下播放器已经有很多了,但是依然没一款播放器能像Windows平台的千千一样集听歌、歌词又对中文支持良好的播放器。

而JMplayer似乎朝着这个方向在努力。

此前我们介绍过一款同样由国人开发的YOYOPlayer(见此),不过它是基于Java的,而且已经停止开发很久了。

而JMPlayer虽然以J开头,但是它是用C++(WxWidgets)开发,不仅跨平台,而且在Linux下拥有原生的GTK+主题。

JMPlayer的全称是:Joy Music Player。

让我们来看看zshxiong对它的简介(原贴在此

http://code.google.com/p/joymplayer/

基于wxWidgets的媒体播放器,运行于Linux平台。目前支持外观皮肤更换,支持歌词同步滚动显示,支持mp3、ogg音频格式;支持 ID3v1/v2标签,支持UTF-8、GB18030、GBK、GB2312等中文编码;支持自定义歌词文件夹,支持自定义歌词、播放列表字体、颜色 等。更多功能正在不断开发中……
需要自行安装gstreamermm
ubuntu8.04下开发

因为需要自行编译gscreamermm才能正常运行该软件,步骤有点多而且麻烦。

所以为了方便大家测试,我将zshxiong的软件包重新打包,现在大家只需要点击下面的链接下载,解压后运行start-jmplayer即可:

http://code-of-tualatrix.googlecode.com/files/JMPlayer.tar.bz2

下面是软件运行的截图:

jmplayer1

jmplayer-preferences

非常期待这款软件的后续发展!

来自于:http://linuxdesktop.cn/2009/02/23/jmplayer.html

Google Chrome Linux 版截图现身

早前我们向大家报道了 Google 的开源浏览器 Google Chrome 的 Linux 版本将采用 GTK+ 工具包的消息。现在,已经有网友放出了该浏览器的相关截图,让我们一起来看看。

Chromium

Chromium

从上面的截图,我们可以看到 Google Chrome for Linux 目前还处于 pre-alpha 阶段,其可用性仍有一段距离。同时,Google Chrome for Linux 与 Windows 版的用户界面及外观几乎一致。

如果你想尝试这个新的浏览器,那么可从这里获取其 DEB 二进制包。另外,Archlinux 用户也有 leeight 同学维护的 PKGBUILD 可以使用。

根据 Google 官方的消息,Google Chrome for Linux 预计今年 6 月正式推出。

来自于:http://linuxtoy.org/archives/google-chrome-for-linux-screenshots.html

jpdftweak——用于调整 PDF 文档的瑞士军刀

jpdftweak  (jPDF Tweak) 是采用 Java 开发的用于调整 PDF 文档的小工具,它可以实现 PDF 文档的合并、分割、页面旋转、页面重新排序、水印、加密、签名以及添加附件等操作。

像 jpdftweak 这类工具,在 MS Windows 中可以找到很多,但是在 Unix-like 中却很稀缺,再认真去找,也只能寻到 pdftk。 由于 pdftk 不支持中文的文件名,另外因为 JAVA 早已开源,现在非常不想安装 gcj 去编译它;还有就是好久都未有更新了,“最新”的版本是 2006 年发布,不支持较新的 PDF  文档版本。所以,当未有发现 jpdftweak 之前,我一直都在 VirtualBox + WinXP 环境中使用 acrobat “偷偷地”修改 PDF 文档,现在终于可以对 acrobat 说 "good bye" 了。

jpdftweak 使用 iText 库操作 PDF 文档,使用 SWing 库 (jGoodies 外观) 开发用户界面。在安装 jpdftweak 软件包时,请确认系统中已安装  jre (>=1.5.0)。另外,jpdftweak 项目针对用户的系统环境中是否已经安装 iText 与 jgoodies-forms 库,分别提供了相应的二进制版本:

Binary download, compact version (Version 0.9, 724 KB)

Binary download, normal version (Version 0.9, 2699 KB)

Download without libraries (Version 0.9, 168 KB)

对于 Gentoo 用户,由于 portage 已经收录了该软件包,可以直接 emerge 安装。若基于 jpdftweak 源码包进行编译安装,请确认系统中已安装以下软件包:

  1. jdk (>=1.5)
  2. itext
  3. jgoodies-forms
  4. dev-java/ant-core-1.7.1-r2

如果你还不是很清楚究竟拿 jpdftweak 来做什么,下面我举个例子。我们经常从网络中获得以 pdf 文档形式发布的电子书,由于书的正文页面之前存在着封面、前言、目录之类的页面,导致书的页码与阅读器的页码往往不对应。这时,我们可以使用 jpdftweak 将封面至目录之间的页码设为空,将目录与正文页面之间的页码设为小写的罗马数字,将正文起始页面设置为阅读器的第 1 页,如下图所示:

关于 jpdftweak 更为详细的信息,请访问其项目主页:http://jpdftweak.sourceforge.net/.

本文来自于:http://www.linuxgem.org/posts/7233