红联Linux门户
Linux帮助

一步步在archlinux中建立自己的软件库

发布时间:2013-03-25 21:30:08来源:红联作者:hstking
原创文章,如需转载请注明出处。

本来只是想做个archlinux的内核更新包,但看完archlinux这方面的wiki后,发现做个本地库好像也不太难。随手建立了一个本地的软件库。当然,这只是最简单的库。如需添加软件,稍微修改一下即可。
写的都很简陋,勉强可以说明流程。将就看一下。呵呵……

好了,先简单的说下流程。
我首先写了一个最简单的C小程序,然后将它打成ArchLinux的软件包。再利用这个包建立起本地的软件库。

第一步,先写C程序。目录结构如下。
├── SayHello-0.1
│ ├── include
│ │ └── hello.h
│ ├── Makefile
│ ├── SayHello
│ └── src
│ └── hello.c
├── SayHello-0.1.md5
└── SayHello-0.1.tar.gz
SayHello-0.1是项目文件夹,SayHello-.0.1.tar.gz是项目文件夹打包得到的压缩文件。SayHello-0.1.md5是用md5sum SayHello-0.1.tar.gz > SayHello-0.1.md5得到的校验文件(不是非要这个文件,但在制作ArchLinux文件包时,它一直提醒没有校验,没办法了,只好做了一个)。
代码如下:
################################
hello.h
#include
#include

#define ERR_EXIT(m)\
do\
{\
perror(m);\
exit(-1);\
}while(0)
#####################################
hello.c
#include "hello.h"
int main(int argc ,char* argv[])
{
printf("Hello\n");
printf("This is a test program\n");

return 0;
}
#####################################
Makefile

CC = gcc
CFLAGS = -Wall -g
obj = hello.o

VPATH = include:src
#vpath %.c src
#vpath %.h include

SayHello:hello.o
$(CC) $(CFLAGS) -o $@ $<
hello.o:hello.c hello.h
$(CC) -c -Iinclude -o $@ $<

##SayHello:hello.c
##$(CC) $(FLAGS) -Iinclude $< -o $@

.PHONY:clean install uninstall
clean:
-rm hello.o SayHello
install:
cp SayHello ~/bin/
##sudo cp SayHello /usr/local/bin/
uninstall:
-rm ~/bin/SayHello
#######################################3

好了,程序部分已经完成了。然后再打包,建立校验文件。
tar zcvf SayHello-0.1.tar.gz SayHello-0.1
md5sum SayHello-0.1.tar.gz > SayHello-0.1.md5

把它们上传到虚拟机的服务器上去。
scp SayHello-0.1.* XXX@xxx.xxx.xxx.xxx:/var/myftp/pub/
(这一步可以省略,只要把下面的PBKBUILD文件修改一下就可以了。)




第二步,把程序打包成ArchLinux的安装包。
abs的安装配置省略,wiki上已经说得非常清楚了。
在家目录上建立打包目录。
mkdir -pv ~/abs/SayHello
cd ~/abs/SayHello
vi PKGBUILD
这里只有一个文件。代码如下。
#########
PKGBUILD

pkgname=SayHello
pkgver=0.1

pkgrel=20130324
pkgdesc="A Say Hello test program."
arch=('i686' 'x86_64')
url="ftp://xxx.xxx.xxx.xxx"
license=('GPL2')
#depends=()

source=("ftp://xxx.xxx.xxx.xxx/mypub/$pkgname-$pkgver.tar.gz")
md5sums=('这里就是md5文件中的内容,被我隐藏了')

##install=SayHello.install


build()
{
cd $startdir/src/$pkgname-$pkgver

make clean
make
make install
}

好了,现在打包。很简单,直接执行makepkg.现在得到文件
SayHello-0.1-20130324-x86_64.pkg.tar.xz,这个就是需要的archlinux安装包。


现在差不多是最后一步了,先建立仓库位置。
mkdir -pv ~/LocalRepo/Arch
cp SayHello-0.1-20130324-x86_64.pkg.tar.xz ~/LocalRepo/Arch/
cd ~/LocalRepo/Arch/
给仓库添加数据库。
repo-add ~/LocalRepo/Arch/LocalRepo.db.tar.gz SayHello-0.1-20130324-x86_64.pkg.tar.xz
最终的文件如下。
├── LocalRepo.db -> LocalRepo.db.tar.gz
├── LocalRepo.db.tar.gz
└── SayHello-0.1-20130324-x86_64.pkg.tar.xz
最后一步,在pacman.conf中加入本地库。
[LocalRepo]
Server = file:///××××××/LocalRepo/Arch/



好了,所有的流程都完毕了。可以开始测试了。
pacman -Sy
LocalRepo 428.0 B 569K/s 00:00 [######################] 100%
本地库已经载入
pacman -Sv SayHello
没有问题。
pacman -Rs SayHello
也没问题。


差不多就是这样了,当然,这只是最简单的应用。升级包什么的都没有做。纯粹是为了跑一遍流程。
文章评论

共有 23 条评论

  1. zzirvin 于 2014-11-15 10:08:08发表:

    学习

  2. keepshy 于 2014-02-20 10:12:47发表:

    谢谢楼主分享(6)m:b

  3. 463748260 于 2014-02-19 14:52:59发表:

    学习学习

  4. aedclan 于 2014-01-23 19:19:09发表:

    顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

  5. uunique234 于 2013-12-30 13:04:45发表:

    不错,支持下

  6. hblovey 于 2013-11-25 11:15:15发表:

    新手看不懂啊

  7. xingfu_168 于 2013-09-29 20:42:55发表:

    看起来很深奥

  8. maidoumac 于 2013-08-16 16:04:12发表:

    新手进来给你添人气

  9. leumouse 于 2013-07-30 10:06:39发表:

    学习学习

  10. dentg 于 2013-07-09 16:20:12发表:

    顶起

  11. 云龙傲九霄 于 2013-06-18 08:50:04发表:

    不错,好东西。

  12. iderbillson 于 2013-06-16 20:08:54发表:

    太高深了。学不进去。不过复制下来收藏了。

  13. a2109 于 2013-05-21 22:37:22发表:

    谢谢分享:0wpoi2(5ty(

  14. a2109 于 2013-05-21 22:37:16发表:

    谢谢分享:0wpoi2(5ty(

  15. a2109 于 2013-05-21 22:37:10发表:

    谢谢分享:0wpoi2(5ty(

  16. suyu820@163.com 于 2013-05-19 22:19:23发表:

    Thanks, good stuff!

  17. scw201314 于 2013-03-29 18:53:06发表:

    是有点迷茫啊

  18. scw201314 于 2013-03-29 18:53:00发表:

    是有点迷茫啊

  19. scw201314 于 2013-03-29 18:52:56发表:

    是有点迷茫啊

  20. 棒球小宝 于 2013-03-28 13:21:56发表:

    dingdingdingding

  21. Growth兆 于 2013-03-26 15:20:41发表:

    感谢hstking的分享,本贴加入到论坛的Linux应用贴中

  22. RoadCloud 于 2013-03-26 06:48:00发表:

    强文呀,力顶

  23. jinyongvvv 于 2013-03-25 22:39:22发表:

    很好,学习了