文章标签 ‘Linux软件’

如何从源代码自动制作Deb规则&推送至Launchpad

2012.02.29 | 天气: | 标签: , ,

本文环境

OS:Ubuntu 11.10
已安装:build-essential、dh-make、dput等必要的库和软件
对象:不会却又想打Debian包的小白

本文目标

  1. 没有debian规则情况下,大部分自动化地创建debian规则
  2. 文件符合LaunchPad.net标准,上传至PPA

准备工作

  1. 去申请launchpad.net帐号
  2. 创建个人Open PGP密钥
  3. launchpad帐号加入Open PGP密钥
  4. 在LaunchPad.net上建立个人PPA

创建Debian规则

Linux的世界是源代码构成的,时时刻刻会多出很多新的,好玩的软件,但这些软件的作者并没有时间去写debian规则,而各位又想用deb包来安装的话就没办法了。跳过“又臭又长”的Debian打包指南,其实我们只需要一个软件就够了——dh_make。
这个软件会自动地根据makefile写出Debian规则来,执行一下就好了,够简单吧。

下面就用没有debian化的ibus-gjs来做例子:
git clone git@github.com:mengzhuo/ibus-gjs.git ibus-gjs-1 && cd ibus-gjs-1 && mv debian debian.backup
你会发现这时,ibus-gjs-1里面没有debian规则(只剩个备份文件夹啦),还有就是在路径底下直接用dh_make是不行的,因为我们的作者用的是autogen.sh,所以需要用以下命令来做出makefile
./autogen.sh --prefix=/usr && ./configure
成功后(没有任何依赖不足或错误)执行
dh_make -e "mengzhuo1203@gmail.com" -n -s
当然,你可以把email换成你自己的,具体参数是什么意思请问man哦,这时屏幕上应该出现:

图片里大意是叫你去修改一下debian规则,毕竟很多地方还是要人来做的嘛~一般改debian/control和删除一些不需要的*.ex脚本文件,具体怎么改就要看Debian的文档啦,不过本例的最后成品可以参考debian.backup文件夹里的文件。

创建、测试Deb包

上面改好之后,在ibus-gjs-1底下执行dh_make --createorig -s,来创建debuild所需的orig文件,放心按回车吧,那个提示是吓唬你的,因为你已经创建了debian规则,所以它会略过的。
现在,你已经可以自己创建一个deb包了,下面的命令会创建一个deb包,并清除编译产生的缓存。
debuild -b && debuild clean
然后你会发现下面的错误:
这是因为你还没指定你的密钥,如果你不需要上传到LaunchPad的话就可以忽视它啦。现在,返回上层,你就会发现你打好的DEB包啦。

源码上传

就3步:

  1. 获得Open PGP ID,例如我的ID是A0771E56,可以用下面的代码参看
    gpg --list-keys
    我的PGP

    pub 2048R/A0771E56 2011-11-21
    uid Meng Zhuo (For Email and EncryptedFile)
    sub 2048R/DF9E11A0 2011-11-21

  2. 在源代码目录执行
    debuild -S -sa -k[你的ID]
    例如:
    debuild -S -sa -kA0771E56
    来构建launchpad承认的源代码格式
  3. 返回上层目录,执行
    dput ppa:[你的PPA地址] source.changes结尾的文件
  4. 例如:
    dput ppa:mengzhuo1203/ibus-gjs ibus-gjs_1_source.changes
    好啦,现在就坐等LaunchPad给你排队编译这个东西了,大概1-2小时不等

总结

我们学了简单地从源代码制作debian规则和上传代码到LaunchPad,很简单吧,我可是摸索了……3天(业余时间),遥想当年手动写规则,简直是弱爆了。
当然,非常欢迎指正错误,或者是说出更好的方法哈~

安装fakeshell最小化ssh用户权限

2012.01.19 | 天气: , | 标签: , , ,

因为新买的VPS跑网站(nginx+php-fastcgi)很吃力,可能是我配置得不好,配置邮件服务器我试了2次,都不行,所以干脆把新服务器改成了ssh代理站,至于用来干什么大家都很清楚哈。
但是Linux下新建的用户权限还是相当高,网上搜到的教程都是把shell指到/bin/false下的,文章连标点符号都一样,可见国内互联网环境有多差!抄就抄的吧,可我要是用这个方法链接刚开始就会自动退出了,所以,在github上找到个源码:
github.com/xxlmira/fakeshell
完全符合我的要求,用户能登入,不需要其他动作,只需要添加即可。
这么方便?就看下面的教程吧。如果你知道什么是编译、用过make这种东西,下面的就不用看啦,哈哈。

安装fakeshell

因为是源码安装,所以肯定要有build-essential,然后下载上面的代码到自己的服务器上,并修改Makefile
……

PROG=		fakeshell
SRCS=		fakeshell.c
BANNER=		banner
PREFIX=		#原来是/usr/local 这里我喜欢用空值
PROVIDER=	"mengzhuo.org" #改成你要的网站标题
ADMINS=		"mengzhuo1203@gmail.com" #改成你要的管理员邮箱
CC=		gcc

…… 阅读全文 »

[python]豆瓣小组沙发机器人

2011.09.03 | 天气: | 标签: , , , ,


这玩意quick and dirty

点我下载
运行前参数要自己改源代码(CTRL+F搜索「#设置区域」)
如何获得小组ID?
例如:B组的URL

http://m.douban.com/group/17947/

group后面那串数字就是ID了。

运行前要修改代码

group_id = ‘小组ID填这里’
#set refresh_interval
refresh_interval = 1 #刷新的秒数(不过会有随机延迟,毕竟豆娘也不容易)
#set sofa Content
sofa_content = ‘沙发内容’
data = {‘form_email’:'注册邮件地址’, ‘form_password’:'密码’, ‘action’:'/’}

然后在终端输入:python douban.py,吼吼,就可以啦~