2009年4月28日星期二

在Ubuntu中通过源码安装编译安装软件(MySQL篇)

摘自http://blog.hnce.net/post/install_mysql_in_ubuntu.html
在Ubuntu中通过源码安装编译安装软件(MySQL篇)
作者:slick 日期:2008年5月4日

使用Ubuntu Server作为本地测试环境已经有一段时间了,一直都是使用apt-get方式来安装各种应用软件,通过源码编译安装应用软件是Linux和Unix环境下最常用的方式。通过源码编译安装的最大好处就是你知道自己做了什么,这种方式安装软件自由灵活,也适用于各种平台、维护方便;本系列文章都是在 Ubuntu Server系统的命令行模式下完成。

在进行源码编译安装之前,我们首先需要作如下的准备工作:

1、更新您的Ubuntu

sudo apt-get update
sudo apt-get upgrade

2、安装所需软件包

sudo apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

apt-get可一次安装多个软件,以上安装可根据需要选装.在安装过程中可能会提示你插入Ubuntu的光盘.如果通过SSH远程管理Ubuntu出现乱码,不能正常查看汉字信息,请参考PuTTY连Ubuntu的SSH出现乱码的处理

3、安装libncurses5-dev

sudo apt-get install libncurses5-dev

通过源码编译安装软件时,出现错误信息:

checking for termcap functions library… configure: error: No curses/termcap library found

安装libncurses5-dev库方可解决.



今天首先介绍的是LAMP组中作为数据存储的MySQL的源码编译安装过程:

mysql使用utf-8作为默认编码:
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-5.0.45.tar.gz
cd mysql-5.0.45
./configure –prefix=/usr/local/mysql –with-charset=utf8 –with-collation=utf8_general_ci –with-extra-charsets=latin1
make
make install
cp support-files/my-medium.cnf /etc/my.cnf

启动vim修改my.cnf文件

vim /etc/my.cnf

找到log-bin=mysql-bin这一行,将其注释掉:#log-bin=mysql-bin


cd /usr/local/mysql
bin/mysql_install_db --user=mysql
chown -R root .
chown -R mysql /usr/local/mysql/var
chgrp -R mysql .

启动MySQL:

bin/mysqld_safe --user=mysql &



让mysql随系统一起启动:

使用vi编辑器,对/etc/rc.local文件进行编辑

vi /etc/rc.local

在exit 0前面加上

/usr/local/mysql/bin/mysqld_safe --user=mysql &

重启服务器,验证mysql是否能随系统正常启动,启动后:
mysql
如果能直接进入则说明启动成功。
为了安全,修改root密码:
mysql>use mysql
mysql>UPDATE user SET password=PASSWORD('new_password') WHERE user='root';
mysql>FLUSH PRIVILEGES;
mysql>exit

ipmsg GTK2版 linux上安装记录

ipmsg GTK2版

ipmsg(译名:飞鸽传书)是局域网内的文件传输工具。它是免费的,开源的,在GPL协议下发布。它有windows,linux,Mac,java等不同平台或语言的版本。

下面我来说一下它的GTK2版在ubuntu dapper/feisy/hardy下的安装过程。

安装依赖的包

sudo apt-get install intltool libgnomeui-dev libpanel-applet2-dev

下载

wget http://www.ipmsg.org/archive/g2ipmsg-0.9.5.tar.gz

配置

./configure –prefix=/usr –sysconfdir=/etc –enable-systray –with-ext-charcode=CP936

编译

make

安装

sudo make install

使用

将G2IPMSG Applet小程序添加到你的面板上。

效果

g2ipmsg.png

TroubleShootings

a)编译时出现如下错误:

file=`echo ja | sed ’s,.*/,,’`.gmo \
&& rm -f $file && -o $file ja.po
/bin/sh: -o: not found
make[2]: *** [ja.gmo] 错误 127
make[2]: Leaving directory `/home/xmx/g2ipmsg-0.9.1/po’
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/xmx/g2ipmsg-0.9.1′
make: *** [all] 错误 2

运行

sudo apt-get install gettext intltool

后再开始configure。

b)列表中没有其它用户

在设置里的Broadcast address setting加入自己的广播地址(将自己的子网掩码取‘反’再与自己的IP相‘或’)。

参考资料:

http://www.ipmsg.org

ChangeLog:

Thu Jun 19 CST 2008,更新为0.95版,简化了语言配置过程。
Wed May 23 CST 2007,添加TroubleShootings。

2009年4月27日星期一

GITHUB创始人回忆录

看到这样一篇译文,讲述了GITHUB创始人Tom Preston-Werner的创业历程

拒绝诱惑、追求真爱——看我怎么拒绝微软的30万转而投奔偶滴真爱GitHub

原文链接:How I Turned Down $300,000 from Microsoft to go Full-Time on GitHub
作者:Tom Preston-Werner
译者:Esther

版权声明:本文可以任意转载,转载时请务必保持作者、译者署名的完整性。

2008年是闰年。这意味着,366天前,几乎同一分钟,我独自一人坐在旧金山第三大道Zeke’s Sports Bar and Grill里。我通常很少在运动吧(sports bar)出现,就更别提SOMA的运动吧了,但那个周四是“我会Ruby”之夜。我猜当时“我会______”也是一个可以与很多事情相联系的合理说法。 ICHR是由志同道合的Ruby骇客们组成的半私人聚会,最后通常都自觉地演变成通宵达旦地饮酒。通常这种夜晚会如同我第二天早上的宿醉一样烟消云散,但是这个夜晚却与众不同。因为这正是GitHub的诞生之夜。

我估计当时我一人独坐是因为我刚刚定了一款新型的Fat Tire,需要从谈话中稍微退出一会,之前我们一直在酒吧后面昏暗灯光下围着长桌子说话。喝了四五口之后,Chris Wanstrath走了进来。我现在记不太清楚当时Chris和我算不算得上朋友。我们是通过Ruby聚会啊会议啊认识的,但只是泛泛之交。不过是寒暄几句“哎,我觉得你的代码写得非常棒”之类的。我不知道是什么促使我这么做,但是我跟他示意到我这边来,说,“哥们,看看这个。”大概一周前,我开始着手名为Grit的项目,该项目可以让我通过Ruby代码以目标方式进入Git贮藏室。Chris是当时寥寥无几的开始认真对待Git的人之一,他坐下,我让他看了看我手头的东西。东西不多,但足以看到这点燃了Chris身上的某种东西。察觉到这一点,我说出了尚未成熟的想法,建立一个网站,作为代码编写者分享Git贮藏室的枢纽。我甚至连名字都想好了:GitHub。我当时可能还在解释,他果断地插话说,“算我一个。咱们做吧!”

转一天晚上,也就是2007年10月19日星期五晚上10点24分,Chris对GitHub贮藏库做出了第一个贡献,为我们的联合冒险旅程打上了最初的烙印。至此,对于这事该如何进行,我们还都没商量。只是两个人决定在这件听起来很酷的东西上要大干一场罢了。

《小子难缠》里丹尼尔受训成为武术大师,还记得那奇妙的时间吗?记得音乐吗?嗯,也许你该买张碟,听听Joe Esposito的《你最棒(You’re The Best)》,因为我现在要大玩蒙太奇手法了。

在接下来的三个月里,Chris和我花了大量时间规划GitHub、写代码。我不断开发 Grit,设计了用户界面。Chris编写出Rails应用程序。我们每周六见面,进行设计决策,琢磨我们的定价方式到底应该如何是好。我记得有一天下着大雨,我们一口气谈了两个小时,讨论各种定价策略,还品尝了本市最好吃的越南蛋卷。在做这些的时候,我们都还有其他工作。以我为例,我当时在 Powerest,为Ranking和Relevance团队开发工具。

连着三个月,我们把晚上和周末时间都花在这个项目上,直到1月中旬,我们推出了私人试用模式,向朋友们发出了邀请。2月中旬,PJ Hyett加入,我们也变为了三强。4月10日,我们公开发布了网站。我们没把这事告诉TechCrunch。此时此刻,它仍由三个20多岁的人管理着,外界没有向它投资一分钱。

2008年7月1日,我还在Powerset全职工作,当时,我们听说微软刚刚用1亿美元收购了Powerset。时机耐人寻味。由于此收购,我被迫面临选择,比我预期得要早。我要么被迫成为微软员工,要么辞职奔赴GitHub全职工作。29岁的我是GitHub三人行中的老大,而我的累积债务和月消费也相应更大。我已经习惯了六位数的生活方式。让事情变得更错综复杂的是,我妻子特蕾萨结束她在哥斯达黎加的博士实地调查,马上要回来。我不能再假装是单身汉,而要恢复已婚男人的身份了。

微软也来凑热闹,让我更难抉择,因为他们提供的报酬很丰厚:工资再加上30万现钱。这足以让任何人犹豫一番。所以我面临的是:作微软人,有稳定的职业,固定的收入——或者——创业,工作有风险,收入不确定。我知道,我若在Powerset停留过久,其他两个人就会觉得极度紧张。他们存了些钱,几个月前成了自由职业者,两人都开始把所有时间投入到GitHub中。这是生死存亡之时。要么挑起GitHub全力以赴,要么做个稳妥的选择, 退出GitHub,到微软赚个盆满钵满。

如果你想要寝食难安的秘诀,我可以给你一份。再加一份“老婆大人会怎么想”,3000份本杰明·富兰克林;在“想抱怨,随时悉听尊便的啤酒”里搅一搅,再以财务独立的机会当头浇。

告诉老板说我要离开公司去做更酷的事情,这是我一贯的拿手好戏。我跟Powerset的老板摊牌之日正是任命之日。我告诉他我要辞职,要在GitHub全职投入。跟任何英明的老板一样,他不开心但也表示理解。他也没有用更多奖金或其他东西来诱惑我。我想他一早就知道我要走。我可能得有比别人更大的动机才会留下来,因为我早就有跳槽的准备。我跟你说,微软这些经理人精着呢。截流奖励已经被他们应用得出神入化。当然,除非你把业界独一无二的企业家扔进这群人中。只要周围有一个这样的人,事情就变得千奇百怪了。

最后,正如印第安那·琼斯不会放弃任何机会寻找圣杯,我也不能拒绝任何做自己真心热爱的事情的机会,不管其他选择有多么安全。当我垂垂老矣,即将告别人世时,我打算回望整个人生,说“啊,那可真是冒险,”而不是“哟,我当然觉得安全啦。”

Google Code还是Sourceforge?

最近在了解源代码管理服务,找到了一篇不错的文章,摘录如下:

许式伟
2006-12-28
概要

提起Google Code,我需要很惭愧地承认一点,我一开始的时候“把它看扁了”。初接触Google Code的时候,我简单地认为,Google Code只是一个半成品,从各方面的功能来讲,似乎远不能够与Sourceforge的完备相比。但是,随着对Google Code了解的深入,我不能不承认我错了,Google Code再一次证明“简单是美”的法则:Google的服务似乎永远是看似简单(甚至让你觉得不够用),而实则非常完备。
如果你有开源的计划,或者已经开源,或者你有私人的项目希望有个完备的平台去管理它,那么本文值得你一读,因为这是我在这方面的一些心得。到目前为止,我开源了WINX和DocX已经4个月多了,和Google Code、Sourceforge均有了较长时间的接触,希望借机会和大家交流下。

选择Google Code,还是Sourceforge?总体来讲,两者各有各的优势。从进入的门槛来讲,使用Google Code会比Sourceforge容易很多。

Google Code的优势与劣势

Google Code的优势

* 速度第一。Google的服务以快速著称,Google Code亦不例外。当你上传新的Release时,你会特别感受到这一点。

* 操作简洁。如果Sourceforge和Google Code提供了同样的功能,那么我可以毫不思索的讲,Google Code比Sourceforge快捷易用。我们后文将详细比较各个功能。

Google Code的劣势

* 容易被盾。以我的经验,Google Code被盾比较频繁。这导致我有时无法浏览Bug列表,发布新的Release等等。所幸的是,Google Code的SVN连接从来没有出现访问障碍。因此这不算太大的问题。另外,按Google Code的说法,有些功能可以在命令行进行,而不需要到Web上,但是我本人尚未进行详细的验证。

* 100M的容量限制。Google Code限制每个项目的SVN空间大小不能超过100M,发布的所有Release亦不能超过100M。由于目前我的项目刚刚开始,这一点还不是一个障碍。但是这是一个比较容易到达的数字。可以预见,你的项目要面临搬家的风险。我试图寻找办法来清除一部分SVN历史版本数据、删除一些历史Release 版本,未果。

* 无数据统计功能。你无法得知你的Release被下载的情况(下载总数以及趋势)。

Sourceforge的优势与劣势

Sourceforge的优势

* 更多的受众,已经形成第一开源社区。简单统计结果表明,Sourceforge上大约每5分钟就有一个新的Release。也就是说,一天大约有300个新的发布(这不是精确的统计,只是简单估算)。

* 功能更加完备。目前来看,Google Code在功能上并不比Sourceforge成熟。如果Google Code是一个完整、快捷、功能足够的平台,那么Sourceforge则是一个方方面面均已经相当完备的开发平台。

Sourceforge的劣势

* 操作繁复,速度较慢。


详细功能对比

下面我们展开来对比一下两者的功能:

* 建立帐号。Google Code只要你有Gmail帐号即可。Sourceforge要求你进行注册。而且你发现,Sourceforge的注册流程十分罗嗦。

* 建立项目。Google Code只要你简单填写一下项目的相关信息(http://code.google.com/hosting/createProject),仅一个页面即可完成申请。而Sourceforge的新Project申请流程是繁复的,有很多的下一步,并需要你阅读一些英文细节。另外,你的项目并不马上生效,而是需要进过审批。不出意外的话,在申请之后的第二天再上Sourceforge,你的项目应该通过审批了。

* 代码管理。Google Code仅支持SVN库,Sourceforge支持SVN和CVS。Google SVN限制在100M内,Sourceforge则尚未见到明确的容量限制。

* 代码库的权限管理。Google Code的代码库权限管理非常简单,在你登陆后,http://code.google.com/hosting/settings 将显示Google Code为你自动生成的随机密码。通过你的用户名和这个随机密码,你就可以访问SVN代码库,对其进行修改。sourceforge推荐使用putty套件,详细参考sourceforge上的说明,总的来说,相当繁复。

* 发布版本。Google Code限制所有Release包不能超过100M,单个Release不能超过10M。Sourceforge尚未见到明确的限制。

Google Code发布一个新的Release流程,仍然只需要一个页面即可完成。你只需要选择上传的文件,并为该文件加一些预定义的标签(用于告诉别人你的 Release支持的平台或其他信息,这些标签Google Code已经预定义部分,项目管理人员亦可以定义),确认即开始上传。特别地,如果一个Release被打上 Featured 标签,那么它将出现在项目首页。

Sourceforge的流程则比较复杂:
o 通过ftp上传你要发布的文件。上传地址:ftp://upload.sourceforge.net/incoming,这个过程匿名进行。上传的文件在你后续的步骤中进行“认领”,如果某个包长时间没人认领,Sourceforge将清理之。
o 进入Sourceforge。用你的Sourceforge帐号登陆。
o 进入项目主页,进入Admin -> FileReleases。
o 选择已有的Package或者新建Package,向该Package中添加一个Release。在你的项目发布的文件比较多(不是发布的历史版本多,而是一次发布的文件多,你可能希望对他们进行归类)时,Package可以更加有条理地管理这些文件。
o 为该Release添加ReleaseNote和ChangeLog。确认。
o 认领你上传到ftp上的文件。打上勾,确认即可。
o 为你发布的文件添加说明(支持的平台、包的格式及其他规格)。
o 如果有人关注这个项目的Release,最后一步,你可以向这些人发送信息,告诉他们发布了新的Release。这一步很有意思,是Google Code不能做到的。

* Bug报告。Google Code中的issues,Sourceforge的tracker。由于用的还不算多,暂时不做详细比较。

* 论坛。Google Code中并不直接提供论坛功能,当然,这是因为它推荐你使用强大的Google Groups。Sourceforge则除了提供给用户的论坛(并把用户论坛分为两个,一个讨论产品功能的,一个属于头脑风暴型的开放式讨论),也提供开发者专用的论坛(对非项目成员不可见)。

* Project Web。Google Code中没有提供项目主页,而是颇具创意的提供了一个Wiki Pages。Sourceforge提供了项目主页,项目主页的地址是:"项目名.sourceforge.net"。你可以利用这个网址来宣传项目、提供项目信息。这个空间是是php+mysql的,并且你可以通过远程Shell控制,极其灵活。

* 团队成员管理。Google Code你可以通过添加其他Gmail帐号为项目成员(Members)或管理员(Administers),但似乎还不能进行更加详细的权限管理。Sourceforge提供了非常精细的项目成员的权限管理。

* 下载与访问统计。Google Code无此功能。Sourceforge提供了最近7日、最近2个月、年、全部访问/下载统计。非常详细。

* 软件截图(ScreenShots)。可以让用户迅速获得项目的第一印象,吸引眼球。Google Code无此功能。


附加说明

* WINX的主页:
o http://code.google.com/p/winx/
o http://sourceforge.net/projects/winx (由于台湾地震影响,可能暂时不可访问)
o http://www.winxcn.com (由于台湾地震影响,可能暂时不可访问)
o 了解WINX...

* DocX的主页
o http://code.google.com/p/docxcn/
o http://sourceforge.net/projects/docx (由于台湾地震影响,可能暂时不可访问)
o 了解DocX...

* 更多关于Google的消息,参见这里。

摘自

2009年4月23日星期四

Centos上yum install遇到public key问题解决方法


http://www.fedorafaq.org/#gpgsig
把所有的key都import一次
如果有key import失败的,把那个key先down下来,在本地import即可

2009年4月7日星期二

在cent os 上使用TL WN322G无限网卡

TP-LINK TL-WN322G+无线网卡驱动 For Linux
阅读(7) 评论(0) 发表时间:2009年03月24日 13:15

本文地址:http://qzone.qq.com/blog/6080673-1237871729
本文标签: 网卡 eth1 WN322G+ TL Linux
TP-LINK TL-WN322G+ 54M无线USB网卡所用的芯片组是ZD1211b,我的Linux版本是CentOS5.1,方法其实不复杂,步骤如下:
1. 进入 http://zd1211.wiki.sourceforge.net/VendorDriver 下载最新的网卡驱动,我下载的是ZD1211LnxDrv_2_22_0_0.tar.gz。
2. tar 解压
3. cd 进入解压后的文件夹
4. # make
5. 如果没有问题,会编译出 zd1211.ko 。
6. # insmod zd1211.ko
# ifconfig eth1 up
# iwconfig
# iwlist eth1 scan
# iwconfig eth1 essid "your wireless net" ;; 填入你自己的ESSID
# iwconfig eth1 key "your key" ;; 填入你的口令key
7. OK了,设置一下IP地址和DNS,就可以上网了!

补充:
光做上面的好像还不行,ifconfig 命令只对本次会话起作用,还需要让系统能够记住它。我的办法是修改 /etc/profile 文件,在文件的末尾添加这样几句:
ifconfig eth1 up
iwconfig eth1 essid "your wireless net"
iwconfig eth1 key "your key"
这样就 OK 了!!