在linux下面创建你自己的程序仓库

在linux下面创建你自己的程序仓库

我们在安装完系统后一般需要设置程序仓库,之后就能使用内置的包管理工具,如:

yum

apt-get

来安装程序了。例如我们安装ftp客户端

sudo yum -y install ftp

我们并不需要自己指定一个url来说明我们要安装ftp在哪里,但是yum(对RED HAT, Centos, Fedora来说是yum,对Debian则是apt-get)就能找到ftp,原因是我们在

/etc/yum.repo.d/

设置一系列的仓库。当调用上面的命令安装程序的时候,yum会从这些仓库中查找ftp的安装包,然后下载安装。

不过这些仓库都是从网上找到的,那么我们能自己创建自己的仓库吗?

答案是能,要不然就没有这篇文件对吗?cheeky

下面是具体的步骤

1. 安装createrepo这个工具

先测试你是否已经安装了这个工具,执行这个命令

$createrepo

如果没有说找不到这个命令之类的,就说明已经安装,否则安装它

sudo yum -y install createrepo

2. 创建仓库

$mkdir myrepo

然后在这个文件夹中放一个rpm包,你放多少个都可以。如果本地没有什么rpm包,你可以下载一个rpm包,比如从sun的官网下载一个jdk的rpm。因为我们是试验,所以可以随便放,如果在真实的部署环境中就放需要用到的rpm包。

$createrepo myrepo

你会发现在myrepo这个文件中多了一个文件夹

repodata

这个文件夹中有一个xml文件和几个压缩文件。

从这个命令的控制台输出我们可以看到createrepo使用了内置数据库sqlite。

3. 安装配置web server

一般仓库是通过http来提供访问的,不过还有一些是通过ftp,我们这里以http方式实现。接下来安装httpd

redhat, centos,fedora

$sudo yum -y install httpd

$sudo service httpd start

Debian

$sudo apt-get install httpd

$sudo service apache2 start

4. 发布仓库

这个步骤就是web server能够访问之前创建的myrepo这个文件夹,方法有2个

配置httpd指向myrepo所在的路径

把myrepo移动到httpd默认的是工作目录

我们选择第二个,比较简单。httpd默认的工作目录是

/var/www/html

$sudo cp -r myrepo /var/www/html

$sudo chmod -R ugo+rx /var/www/html/myrepo

然后在通过http://localhost/myrepo访问看看,如果能看到对应的文件和文件夹说明一些正常。

5. 然后客户端能够访问这个仓库

redhat, centos,fedora

在 /etc/yum.repo.d下面创建一个文件

sudo touch myrepo.repo

然后编辑内容

[myrepo]
name=myrepo
baseurl=http://[ip地址]/myrepo
enabled=1
gpgcheck=0

使用下面的命令查看是否成功:

sudo yum update

—————————————————————

myrepo                                                                                                                                                                                                                | 2.9 kB     00:00     
myrepo/primary_db                                                                                                                                                                                                     | 5.8 kB     00:00     
Setting up Update Process
Resolving Dependencies
–> Running transaction check
—> Package perl-Compress-Raw-Bzip2.x86_64 0:2.021-136.el6 will be updated
—> Package perl-Compress-Raw-Bzip2.x86_64 0:2.052-1.el6.rf will be an update
—> Package python.x86_64 0:2.6.6-51.el6 will be updated
–> Processing Dependency: python(x86-64) = 2.6.6-51.el6 for package: python-devel-2.6.6-51.el6.x86_64
—> Package python.x86_64 0:2.6.6-52.el6 will be an update
—> Package python-libs.x86_64 0:2.6.6-51.el6 will be updated
—> Package python-libs.x86_64 0:2.6.6-52.el6 will be an update
—> Package python-setuptools.noarch 0:0.6.10-3.el6 will be obsoleted
—> Package setuptools.noarch 0:0.7.2-7.el6 will be obsoleting
myrepo/filelists_d

—————————————————————

Debian

在/etc/apt/sources.list.d下面新创建一个文件

$sudo touch myrepo.list

编辑它

deb http://[ip地址]/myrepo cloudera

使用下面的命令查看是否成功:

sudo apt-get update

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示