用Repoview搭建HTTP服务站点管理RPM包

这里,我们搭建HTTP服务站点管理RPM包使用的工具是Repoview.

Repoview可以使用模板引擎创建一个静态的HTML库的一组页面,支持简单的浏览可用的软件包及,他相关信息可以根据RPM包的repodata源数据和HTML模板,产生HTML文件,可以使用HTTP服务查看或下载RPM包。

以下是我制作WEB SERVER的整个过程:

准备工作:

下面是repoview的官方网站

https://fedorahosted.org/repoview/,可以这这里下载到repoview最新版本的tar包.

解开tar包,查看README文件,会看到repoview的要求:

REQUIREMENTS:

————-

* Kid templating engine (0.6.3 or above)

* Yum 3.0 or above

* Python-2.5 or Python-2.4 with cElementTree

* Sqlite-3

1.安装kid-template

可以在http://www.kid-templating.org/下载到kid-template最新版本的tar包.

[root@localhost ~]# tar zxvf kid-0.9.6.tar.gz

[root@localhost ~]# cd kid-0.9.6

[root@localhost kid-0.9.6]# python setup.py install

running install

error: invalid Python installation: unable to open /usr/lib/python2.6/config/Makefile (No such file or directory)

PS:

/usr/lib/python2.6/config/Makefile 文件属于python-devel 包,因为没有安装python-devel包所以会报错。

使用rpm -qa查看是否安装python-devel包

[root@localhost kid-0.9.6]# rpm -qa|grep ^python

python-crypto-2.0.1-18.i586

python-libs-2.6-7.fc11.i586

python-slip-0.1.15-3.fc11.noarch

python-iniparse-0.3.0-2.fc11.noarch

python-urlgrabber-3.0.0-15.fc11.noarch

python-reportlab-2.1-4.fc11.noarch

python-paste-1.7.2-2.fc11.noarch

python-imaging-1.1.6-14.fc11.i586

python-slip-dbus-0.1.15-3.fc11.noarch

python-setuptools-0.6c9-3.fc11.noarch

python-numeric-24.2-13.fc11.i586

python-sexy-0.1.9-8.fc11.i586

python-slip-gtk-0.1.15-3.fc11.noarch

python-2.6-7.fc11.i586

[root@localhost ~]# rpm -ivh python-devel-2.6-7.fc11.i586.rpm

warning: python-devel-2.6-7.fc11.i586.rpm: Header V3 RSA/SHA256 signature: NOKEY,

key ID d22e77f2

Preparing… ################################ [100%]

1:python-devel ################################ [100%]

[root@localhost kid-0.9.6]# python setup.py install

2.安装yum

本机已经安装了yum,并符合版本的要求。

[root@localhost ~]# rpm -qa yum

yum-3.2.22-4.fc11.noarch

3.安装python

本机已经安装了python,并符合版本的要求。

[root@localhost ~]# rpm -qa python

python-2.6-7.fc11.i586

4.安装sqlite-3

[root@localhost ~]# rpm -qa|grep sqlite

mono-data-sqlite-2.4-19.fc11.i586

sqlite-3.6.12-3.fc11.i586

本机已经安装了。

5.准备repodata文件

(因为制作repoview目录文件是根据repodata产生的)

保证安装目录Packages里包含所有的RPM包。

[root@localhost install]# ls

images isolinux Packages repodata

[root@localhost install]# createrepo -g repodata/XXXXX-11-compos-default.xml -d .

PS:

createrepo建立yum源的数据文件,-g 指向使用分组R对PM包进行管理,-d 指生成yum源数据使用的数据库。

XXXXX-11-compos-default.xml是手动产生的,以上这条命令是根据XXXXX-11-composdefault.xml里面的内容对Packages里的RPM包产生依赖关系。

6.用repoview产生HTML文件

进入repoview tar包解压的目录。

[root@localhost repoview-0.6.4]# python repoview.py -k ./templates/ /光盘内容目录/

PS:

这个时候已经产生repoview需要的html页面,目录在/光盘内容目录/repoview/.

当然这里也可以是我们在硬盘上的安装目录,这是我的操作,安装目录为

/mnt/sdb1/ll97bak/rebuild_2009_11_09/install_repoview/

7.配置httpd

/etc/httpd/conf/httpd.conf为httpd的配置文件:

a.此目录为apache放置网页的地方,里面的index.html即为连到此主机的预设首页

DocumentRoot “/var/www/html”

修改为:

DocumentRoot “/mnt/sdb1/ll97bak/rebuild_2009_11_09/install_repoview/repoview”

b.允许用户端的连线有多个请求,设为Off表示不允许

KeepAlive Off

修改为:

KeepAlive On

c.管理员的电子邮件地址

ServerAdmin root@localhost

修改为:

ServerAdmin XXXX@XXXXX.com

8.运行httpd

[root@localhost ~]# httpd -k start

httpd: apr_sockaddr_info_get() failed for localhost.localdomain

httpd: Could not reliably determine the server’s fully qualified domain name, using

127.0.0.1 for ServerName

httpd (pid 23664) already running

[root@localhost install]# cat /etc/hosts

127.0.0.1 localhost@localhost.localdomain

修改/etc/hosts

[root@localhost install]# cat /etc/hosts

127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

9.出错log

如果无法使用http查看报的相关信息或不能下载,可以查看出错的log文件:/var/log/httpd/error_log可以调试后重新启动httpd服务,使用命令httpd -k restart

10.建立软连接

当用户需要下载某个包时,点击连接,会主动在/mnt/sdb1/ll97bak/rebuild_2009_11_09/install_repoview/repoview,也就是主页下的/repoview/Packages里面找该包,但是我们的rpm包都存放在/mnt/sdb1/ll97bak/rebuild_2009_11_09/install_repoview/Packages下,所以需要做软连接:

[root@localhost repoview]# pwd

/mnt/sdb1/ll97bak/rebuild_2009_11_09/install/repoview

[root@localhost repoview]# mkdir repoview

[root@localhost repoview]# cd repoview

[root@localhost repoview]# ln -sf ../../Packages/ Packages

PS:

主页目录是/mnt/sdb1/ll97bak/rebuild_2009_11_09/install/repoview,打开的时候会分组显示各个包的说明,点击说明会跳到组说明的HTML文件中,再点击各个包说明会跳到包产生的HTML文件,在这里可以看见该包的详细内容(主页,版权,描述,大小,日志文件等),此时点击包名就会在主页下的/repoview/Packages 下找到该包,建立链接下载,这就是repoview 的功能所在,可以查看包的详细信息,也可以下载包,还有一个补充就是:需要把httpd服务添加到默认启动中,这个可以使用chkconfig –level 2345 httpd on命令添加,这样就可以在每次开机的时候都启动该服务,供用户查看下载了。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注