Archive

Archive for the ‘Tech.Notes’ Category

Sub-Process /usr/bin/dpkg returned an error code (1)

August 19th, 2008 BianJiang 2 comments

一、 发现deb包依赖关系错误:

border@b0rder:~$  sudo apt-get install -f
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
读取状态信息... 完成
已经不需要下列自动安装的软件包:
  liberror-perl libdigest-sha1-perl
使用 'apt-get autoremove' 来删除它们。
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。
有 6 个软件包没有被完全安装或卸载。
操作完成后,会消耗掉 0B 的额外磁盘空间。
正在设置 flex (2.5.34-2.1) ...
install-info:不能识别的选项“--description=A fast scanner generator”
        试用“install-info --help”以获得选项的完整列表。
dpkg:处理 flex (--configure)时出错:
 子进程 post-installation script 返回了错误号 1
正在设置 cvs (1:1.12.13-9) ...
install-info: 没有指定目录文件;试用 --help 以获得更多信息。
dpkg:处理 cvs (--configure)时出错:
 子进程 post-installation script 返回了错误号 1
正在设置 libidn11-dev (1.1-1) ...
install-info: 没有指定目录文件;试用 --help 以获得更多信息。
dpkg:处理 libidn11-dev (--configure)时出错:
 子进程 post-installation script 返回了错误号 1
正在设置 comerr-dev (2.1-1.40.8-2ubuntu2) ...
install-info: 没有指定目录文件;试用 --help 以获得更多信息。
dpkg:处理 comerr-dev (--configure)时出错:
 子进程 post-installation script 返回了错误号 1
dpkg:依赖关系问题使得 libkrb5-dev 的配置工作不能继续:
 libkrb5-dev 依赖于 comerr-dev;然而:
  软件包 comerr-dev 还没有被配置。
dpkg:处理 libkrb5-dev (--configure)时出错:
 依赖关系问题 - 仍未被配置
dpkg:依赖关系问题使得 libcurl4-gnutls-dev 的配置工作不能继续:
 libcurl4-gnutls-dev 依赖于 libidn11-dev;然而:
  软件包 libidn11-dev 还没有被配置。
 libcurl4-gnutls-dev 依赖于 libkrb5-dev | hurd;然而:
  软件包 libkrb5-dev 还没有被配置。
  未曾安装软件包“hurd”。
dpkg:处理 libcurl4-gnutls-dev (--configure)时出错:
 依赖关系问题 - 仍未被配置
在处理时有错误发生:
 flex
 cvs
 libidn11-dev
 comerr-dev
 libkrb5-dev
 libcurl4-gnutls-dev
E: Sub-process /usr/bin/dpkg returned an error code (1)

二、 删除已经安装错误包的文件:

通过dpkg -L 来查看已经安装的文件, 已flex为例:

border@b0rder:~$ dpkg -L flex
/.
/usr
/usr/bin
/usr/bin/flex
/usr/lib
/usr/lib/libfl.a
/usr/lib/libfl_pic.a
/usr/lib/libfl.so
/usr/share
/usr/share/info
/usr/share/info/flex.info-2.gz
/usr/share/info/flex.info.gz
/usr/share/info/flex.info-1.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/flex.1.gz
/usr/share/doc
/usr/share/doc/flex
/usr/share/doc/flex/NEWS.Debian.gz
/usr/share/doc/flex/NEWS.gz
/usr/share/doc/flex/changelog.Debian.gz
/usr/share/doc/flex/copyright
/usr/share/doc/flex/README.gz
/usr/share/doc/flex/README.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/flex
/usr/include
/usr/include/FlexLexer.h
/usr/bin/flex++
/usr/bin/lex
/usr/lib/libl.a
/usr/share/man/man1/lex.1.gz
/usr/share/man/man1/flex++.1.gz
/usr/share/doc/flex/changelog.gz

把要删除的文件导入文件中,做成删除脚步:

border@b0rder:~$ dpkg -L flex > flex
 通过vim 在每一行前加 "rm "
border@b0rder:~$ chmod a+x flex
border@b0rder:~$ sudo ./flex

三、 删除dpkg info 信息:

border@b0rder:~$ cd /var/lib/dpkg/info
border@b0rder:/var/lib/dpkg/info$ sudo rm flex.*

四、 卸载flex:

border@b0rder:/var/lib/dpkg/info$ sudo apt-get remove flex

五、再执行 sudo apt-get install -f,flex依赖问题解决。其他的一览关系参考二,三,四 步。

六、参考

– EOF –

Categories: Tech.Notes Tags: , , ,

Install Trac and svn on ubuntu

July 15th, 2008 BianJiang 2 comments

Install Python2.5:

border@ubuntu:/bvcomsvn/svnrepos$ sudo apt-get install python

Install Apache(如果没有必要可以不用安装):

border@ubuntu:/bvcomsvn/svnrepos$ sudo apt-get install apache2
border@ubuntu:~$ sudo apt-get install libapache2-mod-python

Install Genshi:

border@ubuntu:~/tools$ wget http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.gz
border@ubuntu:~/tools$ tar xfv Genshi-0.5.1.tar.gz
border@ubuntu:~/tools$ cd Genshi-0.5.1/
border@ubuntu:~/tools/Genshi-0.5.1$ sudo python setup.py install

Install Easy Install:

border@ubuntu:~/tools$ wget http://peak.telecommunity.com/dist/ez_setup.py
border@ubuntu:~/tools$ sudo python ez_setup.py

Install Trac:

border@ubuntu:~/tools$ svn checkout http://svn.edgewall.org/repos/trac/trunk trac
border@ubuntu:~/tools$ cd trac/
border@ubuntu:~/tools/trac$ sudo python setup.py install

Trac 和 Subversion 数据同步(http://trac.edgewall.org/wiki/TracSubversion):

border@ubuntu:/bvcomsvn/trac$ sudo apt-get install python-subversion

The Trac Environment ( http://trac.edgewall.org/wiki/TracEnvironment ):

border@ubuntu:/bvcomsvn$ trac-admin /bvcomsvn/trac/web2.0 initenv

设置用户权限:
linux 中使用 htdigest 创建用户,Windows 中使用 trac-digest.py(如果你没有安装Apache你可以自己创建
trac-digest.py脚本来增加用户,参考: http://trac.edgewall.org/wiki/TracStandalone )

border@ubuntu:~$ htdigest -c /bvcomsvn/tracs/web2.0/passwd.digest localhost border
border@ubuntu:~$ htdigest /bvcomsvn/tracs/web2.0/passwd.digest localhost bvcom

border@ubuntu:~$ trac-admin /bvcomsvn/tracs/web2.0/ permission add admin TRAC_ADMIN
border@ubuntu:~$ trac-admin /bvcomsvn/tracs/web2.0/ permission add developer TICKET_ADMIN

border@ubuntu:~$ trac-admin /bvcomsvn/tracs/web2.0/ permission add border admin
border@ubuntu:~$ trac-admin /bvcomsvn/tracs/web2.0/ permission add bvcom developer

border@ubuntu:~$ trac-admin /bvcomsvn/tracs/web2.0/ permission remove anonymous TICKET_CREATE
border@ubuntu:~$ trac-admin /bvcomsvn/tracs/web2.0/ permission remove anonymous TICKET_MODIFY

运行Trac:
没有用户验证:

tracd -p 8000 /bvcomsvn/trac/
有用户验证:
border@ubuntu:~$ tracd -p 8000 --auth=web2.0,/bvcomsvn/tracs/web2.0/passwd.digest,localhost /bvcomsvn/tracs/web2.0/

trac-digest.py脚本:

#!/usr/bin/python
# -*- mode: utf8-unix -*-

from optparse import OptionParser
# The md5 module is deprecated in Python 2.5
try:
    from hashlib import md5
except ImportError:
    from md5 import md5
realm = 'trac'

# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
                  help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
                  help="the password to use")
parser.add_option("-r", "--realm",action="store", dest="realm", type = "string",
                  help="the realm in which to create the digest")
(options, args) = parser.parse_args()

# check options
if (options.username is None) or (options.password is None):
   parser.error("You must supply both the username and password")
if (options.realm is not None):
   realm = options.realm

# Generate the string to enter into the htdigest file
kd = lambda x: md5(':'.join(x)).hexdigest()
print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
参考:

–EOF–

Categories: Tech.Notes Tags: , ,

在linux中格式化一个新硬盘并加载分区

July 14th, 2008 BianJiang No comments

确定你要格式化的硬盘,我的两块硬盘都是SCSI接口的,可以通过:

border@ubuntu:/dev$ ls sd*
sda  sda1  sda2  sda5  sda6  sda7  sdb  sdb1

如果是USB设备:

cd /dev
ls hd*

IDE设备是:

cd /dev
ls hd*

查看分区信息:

border@ubuntu:~$ sudo fdisk -l
[sudo] password for border:

Disk /dev/sda: 146.8 GB, 146815733760 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x980c980c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         383     3076416    b  W95 FAT32
/dev/sda2             384       17849   140295645    f  W95 Ext'd (LBA)
/dev/sda5             384        2933    20482843+   c  W95 FAT32 (LBA)
/dev/sda6            2934       17756   119065716   83  Linux
/dev/sda7           17757       17849      746991   82  Linux swap / Solaris

Disk /dev/sdb: 36.7 GB, 36703918080 bytes
255 heads, 63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa3535cb2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        4462    35840983+   7  HPFS/NTFS

确定要格式化的分区为sdb1.

开始格式化:

border@ubuntu:/dev$ sudo fdisk /dev/sdb

The number of cylinders for this disk is set to 4462.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

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)

删除旧分区d (delete a partition):

Command (m for help): d
Selected partition 1

创建新分区 n (add a new partition):

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-4462, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-4462, default 4462):
Using default value 4462

转换分区类型 t (change a partition’s system id):

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): l

 0  Empty           1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot
 1  FAT12           24  NEC DOS         81  Minix / old Lin bf  Solaris
 2  XENIX root      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 5  Extended        41  PPC PReP Boot   85  Linux extended  c7  Syrinx
 6  FAT16           42  SFS             86  NTFS volume set da  Non-FS data
 7  HPFS/NTFS       4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 8  AIX             4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
 9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
 a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access
 b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
 c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT
10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor
16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT
1c  Hidden W95 FAT3 75  PC/IX
Hex code (type L to list codes): 83       (83 为 Linux ext3 格式)
You cannot change a partition into an extended one or vice versa
Delete it first.

保存退出 w (write table to disk and exit):

Command (m for help): w

创建文件系统:

border@ubuntu:~$ sudo mkfs.ext3 /dev/sdb1

单独挂载分区:
如果要挂载到/svn到话,你要先把现在/svn的文件全部(包括隐藏文件)转移到分割好到分区,再编辑/etc/fstab:

/dev/sdb1   /svn ext3 relatime 0 2

最后重启电脑,重启后查看格式和后的分区信息:

border@ubuntu:/bvcomsvn$ sudo fdisk -l

Disk /dev/sda: 146.8 GB, 146815733760 bytes
255 heads, 63 sectors/track, 17849 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x980c980c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         383     3076416    b  W95 FAT32
/dev/sda2             384       17849   140295645    f  W95 Ext'd (LBA)
/dev/sda5             384        2933    20482843+   c  W95 FAT32 (LBA)
/dev/sda6            2934       17756   119065716   83  Linux
/dev/sda7           17757       17849      746991   82  Linux swap / Solaris

Disk /dev/sdb: 36.7 GB, 36703918080 bytes
255 heads, 63 sectors/track, 4462 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa3535cb2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        4462    35840983+  83  Linux

sdb1 由原来的 HPFS/NTFS 变为现在的 Linux。

–EOF–

Categories: Tech.Notes Tags:

从硬盘安装 ubuntu 8.04 server

July 13th, 2008 BianJiang No comments

下载ubuntu 8.04 server

从ubuntu.com官方网站下载ubuntu 8.04 server 镜像文件 ubuntu-8.04-server-i386.iso

下载ubuntu硬盘安装引导文件initrd.gz和vmlinuz

initrd.gz和vmlinuz 从 http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/ 目录下取得. 如果是其他本版可以从相应的路径取得硬盘安装引导文件。

下载并安装Grub

http://www.gnu.org/software/grub/ 下载Grub,并默认安装

配置Grub

Grub默认安装到windows系统根目录下,主要用到grldr和menu.lst两个文件,把menu.lst中的文件名改为了ubuntu-8.04-server-i386.iso(按你的文件再修改)
并把initrd.gz和vmlinuz解压在与iso同一根目录下. (最好放C盘,ntfs的也可以)

menu.lst 修改后如下:

timeout 10
default 0
fallback 1

title ubuntu 8.04 server
root (hd0,0)
kernel  /vmlinuz  boot=casper  iso-scan/filename=ubuntu-8.04-server-i386.iso quiet splash ro
initrd  /initrd.gz

title GO Back (MS Windwos OS)
rootnoverify (hd0,0)
makeactive
chainloader  +1

文中的root (hd0,0), 是通过Grub获得相应硬盘的分区,如果不知道在哪个盘上可以在Grub引导的时候,root (hd 后面加Tab键自动补全,来查看是那个块硬盘和多少分区。

修改windows引导文件boot.ini

修改C盘根目录下的boot.ini文件,在文件末尾加入下面代码:

C:\grldr="UBUNTU"

从新启动电脑在引导时选择”UBUNTU”, 安装过程和其他系统安装过程一样。

–EOF–

Categories: Tech.Notes Tags:

[学习笔记]MPEG-2概要

June 27th, 2008 BianJiang No comments

MPEG-2概要

MPEG-2是MPEG工作组于1994年发布的视频和音频压缩国际标准。MPEG-2通常用来为广播信号提供视频和音频编码,包括卫星电视、有线电视等。MPEG-2经过少量修改后,也成为DVD产品的核心技术。

MPEG-2的系统描述部分(第1部分)定义了传输流,它用来一套在非可靠介质上传输數位视频信号和音频信号的机制,主要用在广播电视领域。

MPEG-2的第二部分即视频部分和MPEG-1类似,但是它提供对隔行扫描视频显示模式的支持(隔行扫描广泛应用在广播电视领域)。MPEG-2视频并没有对低位元速率(小于1Mbps)进行优化,在3Mbit/s及以上位元速率情况下,MPEG-2明显优于MPEG-1。MPEG-2向后兼容,也即是说,所有符合标准的MPEG-2解码器也能够正常播放MPEG-1视频流。

MPEG-2技术也应用在了HDTV传输系统中。

MPEG-2的第三部分定义了音频压缩标准。该部分改进了MPEG-1的音频压缩,支持两通道以上的音频。MPEG-2音频压缩部分也保持了向后兼容的特点。

MPEG-2的第七部分定义了不能向后兼容的音频压缩。该部分提供了更强的音频功能。通常我们所说的MPEG-2AAC指的就是这一部分。

MPEG-2视频编码概述

MPEG-2视频通常包含多个GOP(GOP = Group Of Pictures),每一个GOP包含多个帧。帧的帧类通常包括I-帧、P-帧和B-帧。其中I-帧采用帧内编码,P-帧采用前向估计,B-帧采用双向估计。

I帧图像采用帧内编码方式,即只利用了单帧图像内的空间相关性,而没有利用时间相关性。
P帧图像中可以包含帧内编码的部分,即P帧中的每一个宏块可以是前向预测,也可以是帧内编码。B帧图像采用双向时间预测,可以大大提高压缩倍数.

MPEG-2的编码码流分为六个层次。为更好地表示编码数据,MPEG-2用句法规定了一个层次性结构。
它分为六层,自上到下分别是:图像序列层、图像组(GOP)、图像、宏块条、宏块、块。

MPEG-2标准文档号码

  • ISO/IEC 13818-1:系统-描述视频和音频的同步和多路技术
  • ISO/IEC 13818-2:视频-视频压缩
  • ISO/IEC 13818-3:音频-音频压缩,包括多通道的MP3扩展。
  • ISO/IEC 13818-4:测试规范
  • ISO/IEC 13818-5:仿真软件
  • ISO/IEC 13818-6:DSM-CC(Digital Storage Media Command and Control)扩展
  • ISO/IEC 13818-7:Advanced Audio Coding (AAC)
  • ISO/IEC 13818-9:实时接口扩展
  • ISO/IEC 13818-10:DSM-CC规范
参考:
  1. http://zh.wikipedia.org/wiki/MPEG-2

–EOF–

Categories: Tech.Notes Tags: ,

Extjs Tree通过递归删除子节点

June 24th, 2008 BianJiang No comments

Extjs Tree通过递归删除子节点信息:

function removeChildrenRecursively(node) {
    if (!node) return;
    while (node.hasChildNodes()) {
        removeChildrenRecursively(node.firstChild);
        node.removeChild(node.firstChild);
    }
}

参考: http://www.realcoding.net/article/view/4557

Categories: Tech.Notes Tags: ,