Posted in Unix,Linux,BSD, 学习 on March 31st, 2009 No Comments »
出自:http://gashero.yeax.com/?p=49
翻译:
gashero
Twisted web howto中并没有提及如何创建SSL加密的WEB服务器。其实这个过程很简单,只是需要一些信息而已,所以这里讲一下。
首先,创建SSL服务器需要一个私钥文件,和一个服务器证书。这里假设你是个开发者,只想要一个测试系统,所以也没必要去搞一个正式的公共证书来。OpenSSL就是你想要的。首先,我们生成一个私钥文件:
$ openssl genrsa > privkey.pem
然后生成一个自签名的SLL证书:
$ openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1000
好了,第一个挑战已经搞定了。下一步就是创建服务器了。假设你已经有了一个twisted web服务器,所以你也知道该在哪个端口监听。我们导入 ssl 模块,创建一个SSL服务器上下文,然后调用 reactor 的 listenSSL 方法:
from twisted.internet import reactor,ssl
sslContext=ssl.DefaultOpenSSLContextFactory(
‘/path/to/privkey.pem’,
‘/path/to/cacert.pem’,
)
reactor.listenSSL(port,site,contextFactory=sslContext)
同样在 twisted.application 中也很容易创建带有上下文的站点,不过这里就懒得介绍了。
gashero懒得介绍的内容,skysbird来介绍:
在 twisted.application 中,通过如下方式来启用服务器端的SSL支持:
sslContext = ssl.DefaultOpenSSLContextFactory(’./cert/prikey.pem’,’./cert/cacert.pem’)
internet.SSLServer([port number],ISignalFactory(f),contextFactory=sslContext
).setServiceParent(serviceCollection)
gashero附加的内容:
需要使用ssl的功能还需要另外安装一堆东西。包括openssl(0.9.8g)、pyOpenSSL(0.6.0)。安装openssl时,debian源里面没有dev版本,只能自己编译,注意配置时要修改安装路径:
$ ./config –prefix=/usr/local
这样以后就可以正确的编译安装pyOpenSSL了,否则默认情况下找不到OpenSSL。
Posted in Linux学习笔记, 学习 on November 1st, 2008 No Comments »
网上有朋友按照如下办法解决。
I followed instructions here
Code:
http://www.virtualbox.org/wiki/Linux_Downloads
After adding the ‘hardy non-free’ to sources, downloading the key and registering, run update-manager to download and configure the latest version.
When you start up VirtualBox for the first time, any existing VMs have to be converted to a new format, so make sure you backup.
I haven’t [...]
Posted in Linux学习笔记, 工作 on September 16th, 2008 No Comments »
1. apt-get source subversion
2. cd subversion-xxxxx现在是1.4.6
3. 编辑 debian/rules (f.e.: gedit debian/rules )
将
ENABLE_JAVAHL=no
修改为:
ENABLE_JAVAHL=yes
并且将rules中的with-jdk的路径位置设置正确
confflags += –enable-javahl –without-jikes –with-jdk=/usr/lib/sun-j2sdk1.5.0
4. dpkg-buildpackage
这时候可能会报很多包没装上,一一装好就可以了,但是我装的时候遇到了这样的问题
python2.5-dev:
Depends: python2.5 (=2.5.2-2ubuntu4.1) but 2.5.2-2ubuntu5 is to be installed表明,我的机器上已经装了 2.5.2-2ubuntu5 ,但是应该装2.5.2-2ubuntu4.1
之前之所以装上了2.5.2-2ubuntu5,是因为曾经Python2.5 version 2.5.2-2ubuntu5 在hardy package tree中可用。但是现在已经删除,因为当时的测试出了问题。因此 python2.5-dev对应的版本也就不可用了,解决办法是降级,按照如下方法:
$ sudo apt-get install python2.5-minimal=2.5.2-2ubuntu4.1 python2.5=2.5.2-2ubuntu4.1
另外有一种方法,通过
$ sudo apt-get install libsvn1=1.4.6* libsvn-java=1.4.6* 来降级,我当时是1.5.1 subclipse工作不正常。
Posted in Linux学习笔记, 工作 on September 14th, 2008 No Comments »
ubuntu中eclipse的svn plugin建议使用JNI方式,而eclipse中的packages中的libsvn-javahl的版本有没有达到要求(1.3.1 or later)因此会有一些包冲突出现。我大概的解决方案就是,到http://packages.ubuntu.com/hardy/libsvn1 这个地址下面分别把libsvn1,libsvn-java,libsvn-javahl重新安装一遍。
在ubuntu 8.10下面,无法降级javahl到1.4.1了,那么我们可以把eclipse里面的subeclipse升级为如下地址:
http://subclipse.tigris.org/update_1.4.x/
Posted in Linux学习笔记 on September 7th, 2008 2 Comments »
方法1:出自:http://www.lostk.com/blog/virtualbox_install_and_network_config/
一、安装
1. 下载安装包。建议下载 Deb 包。
2. 准备依赖。VirtualBox 的正常使用需要 libxalan110 和 libxerces27 这两个包。所以,你要先行安装它们,可以使用下面的指令:
sudo apt-get install libxalan110 libxerces27
3. 安装编译工具及相关包。在安装过程中,要编译 VirtualBox 所用的内核模块。为此,你需要准备基本的编译工具及包,你可以使用下列指令来安装它们:
sudo apt-get install build-essential linux-headers-`uname -r`
4. 现在,转到所保存 VirtualBox 安装包的目录,通过下面的指令来安装它:
sudo dpkg -i VirtualBox_1.x.x_Ubuntu_feisty_i386.deb
在安装的过程中,VirtualBox 会要求你接受许可协议。另外,安装程序也会创建 vboxusers 用户组,并编译所需的内核模块。
5. 现在,你还不能启动 VirtualBox,因为你的当前用户还不属于 vboxusers 用户组。你可以使用下面的指令来将当前的用户(请使用你的用户名代替指令中的“youruser”)添加到 vboxusers 用户组中:
sudo adduser youruser vboxusers
virtualbox 屏幕下移问题:
如果虚拟机的分辨率接近x的分辨率而导致部分界面在x边沿时,全屏后原来窗口管理器 title 的地方变为黑色条状区域,屏幕下移,windows的开始菜单显示在下一个桌面。
解决方法:全屏前把分辨率调小,全屏后右键把显示器分辨率调到同x一致,这样就不会有屏幕偏移。
二、桥接网络配置
一般而言,安装完VirtualBox设定网路时选择默认的NAT模式,Guest就可顺利联网了,但是这种方式比较死板,要作更有弹性的变化,应 该采用桥接模式(Bridged),这里的桥接模式就如同VMware中的Bridged模式,Host与Guest在局域网(LAN)中的地位是相等 的。
参考 virtualbox 安装后放在 VirtualBox 目录中的用户手册文件 UserManual.pdf 配置如下:
1. 在基于 Debian 和 Ubuntu [...]
Posted in FreeBSD, 学习 on September 6th, 2008 No Comments »
出自:
http://www.mydigitallife.info/2006/04/23/freebsd-apache-http-accept-filter-error/
When Apache web server is starting up in FreeBSD system, Apache loads succcessfully and web server functioning properly, but the following warning error occurs:
[warn] (2)No such file or directory:
Failed to enable the ‘httpready’ Accept Filter
The resolution to the above problem is to a accf_http module, which function is to buffer incoming connections until a certain [...]
Posted in NetBSD, Unix,Linux,BSD, 生活 on August 19th, 2008 No Comments »
最近整理了一下在NetBSD下建立Raid1的过程,当时建立bsdchina.org服务器的时候由于时间仓促没有将整个的制作过程记录下来,前两天抽时间在虚机中重新做了这个过程,跟大家分享。
起因:现在一些SATA的主板上自带的Raid控制器并不能被NetBSD识别,因此如何将双硬盘制作为Raid1从而提高数据安全性成为一个比较头疼的问题,最终在bsdchina.org服务器上,采用了软件模拟Raid控制器的方式来实现Raid1。使用的软件是NetBSD标准安装中自带的RaidFrame软件。
过程:
1 在VMware中建立虚拟机,两块硬盘大小10G。
2 安装NetBSD4.0系统至disk0。
3 启动系统后,dmesg|grep -i raid 检查内核是否支持RaidFrame,如果输出类似下面的格式则表示内核有RaidFrame支持。
# dmesg|grep -i raid
Kernelized RAIDframe activated
4 如果没有RaidFrame支持,请先编译内核使其支持RaidFrame。
5 执行df,查看硬盘使用情况。
disklabel -r wd0
# fdisk /dev/rwd0d
通过上面的一些命令,可以帮助我了解目前虚机中第一块硬盘的情况,接下来要在第二块硬盘上做一些准备工作,核心的操作就是将第二块硬盘wd1中的全部扇区用0填充,命令如下:
# dd if=/dev/zero of=/dev/rwd1d bs=8k count=1
执行完毕后,通过如下的命令来确认第二块硬盘上的mbr和全部的数据已经被清空。
# disklabel -r wd1
观察上面的信息,offset都为0证明全部分区没有数据占用。由此可以确定硬盘上既没有数据也没有mbr引导记录。
接下来,我将第一块硬盘上的mbr中的引导记录传送至第二块硬盘。在此之前,先将第二块硬盘wd1设置为可启动。
# fdisk -0ua /dev/rwd1d
按照如下的内容进行回答。
fdisk: primary partition table invalid, no magic in sector 0
Disk: /dev/rwd1d
NetBSD disklabel disk geometry:
cylinders: 19386, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
total sectors: 19541088BIOS disk geometry:
cylinders: 1023, heads: [...]
Posted in Linux学习笔记, 生活 on August 11th, 2008 No Comments »
vino的密碼是放在gconf xml裡面, 而且是用base64編碼方式存放
所以我的作法是…先到online的Base64 Encoder and Decoder將自己的密碼encode後,
然後再下
gconftool-2 -s -t string /desktop/gnome/remote_access/vnc_password 編碼後的密碼
這樣一來就可以再次用vnc連上遠端電腦了
以密碼”test”為例 , 經過base64編碼得到”dGVzdA==”
gconftool-2 -s -t string /desktop/gnome/remote_access/vnc_password dGVzdA==
Posted in NetBSD, 学习 on January 7th, 2008 No Comments »
About two weeks ago, the NetBSD Official annouced that NetBSD4.0 had released, so I decided to update the kernel of the server of NetBSD&OpenBSD Chinese User Group from 3.1 to 4.0. I know this is not the adjacent version updating. So I foresee that there may be a version confict problem after updating. I’ve descripted [...]
Posted in NetBSD, Unix,Linux,BSD, 学习 on December 30th, 2007 No Comments »
NetBSD下一般使用vi或者vim进行程序开发,我之前喜欢使用vi,但是由于程序代码逐渐庞大复杂,有些怀念在IDE环境中程序开发的便利性。于是对NetBSD下的程序开发环境进行了简单的设置。
系统环境:
NetBSD 4.0 Release
软件需求:
VIM(VI Improvement),ctags,exctags。
步骤:
1 首先通过pkg_add或者pkgsrc方式安装VIM。我的环境中安装的是VIM7.1。
2 接下来通过pkg_add或者pkgsrc方式安装exctags。
3 将/usr/pkg/share/vim/vim71/vimrc_example.vim复制到~/下,并且改名为.vimrc。
4 通过export TERM=xterm方式修改NetBSD下的SH的终端方式,我的NetBSD默认的终端方式是vt100。如果不想每次都要执行export命令,那么可以在/etc/profile下添加这句命令。
5 接下来进入/usr/pkg/share/vim/vim71/目录下,执行wget http://www.vim.org/scripts/download_script.php?src_id=7701去下载最新的taglist包。然后unzip下载下来的文件。
6 此时vim已经可以彩色显示c,c++的关键字,函数名等单词了。
7 NetBSD下的ctags还不能满足vim中的Tlist命令的要求,因此我们还需要安装exctags,通过pkg_add或者Pkgsrc方式都可以。
8 在工程的根目录里(我由于要查看src源代码,因此在/usr/src下执行exctags -R *),他会生成一个tags目录。
9 接下来在vim的命令状态下,执行:Tlist,便可以看到类似IDE的开发环境了。 在某个函数调用上按ctrl+]便可以看到函数的实现,然后ctrl+T可以切换回来。ctrl+W可以在各个窗口切换。
附:如果希望查看某个函数在什么地方被调用(常用作大型项目代码的阅读),可以为vim安装cscope支持。在NetBSD4.0下,pkg_add安装的VIM7.1是不带cscope支持的,需要通过Pkgsrc或者源代码的方式进行安装,在configure的时候要加上–enable-cscope的选项,然后进入vim输入命令:version,观察是否启用了cscope支持(启用的话在cscope旁边会有一个+)。然后再通过pkg_add或者pkgsrc方式安装cscope,最后再工程目录下执行 cscope -Rbkq,这样可以生成标志库文件,第一次比较慢,以后便是增量添加,不会这么慢了。生成标志库以后,进入vim通过命令:cs add cscope.out便可以将标志库attache到vim环境中,然后通过cs find s便可以找到所有的调用点。
-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-k: 在生成索引文件时,不搜索/usr/include目录
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度