这里,我们搭建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命令添加,这样就可以在每次开机的时候都启动该服务,供用户查看下载了。