创建自己的 Yum repository

  Fedora 下采用 Yum 管理 RPM 之间的依赖, 同时可以从 Repositories 端解析到合适的 RPM 依赖包,使得我们安装软件非常的方便。 很多 Linux 下的软件发布都会考虑发布一个 Yum 的 repo 文件, 让用户更加方便的安装。 本文先介绍客户机如何使用第三方的 repo 文件, 最后介绍下如何创建自己的 yum repository。

 

使用第三方的 repo 文件

 我们以 virtualbox 为例, Oracle 为 virtualbox 发布提供了 repo 文件, 地址在:

http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo

 

首先,我们切换到 root 用户:

[lgao@lgao ~]$ su -
Password: 

 然后, 到 /etc/yum.repos.d/ 目录下, virtualbox.repo 文件 downlod 下来:

[root@lgao ~]# cd /etc/yum.repos.d/
[root@lgao yum.repos.d]# wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
--2012-06-26 15:03:13--  http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
Resolving download.virtualbox.org... 137.254.16.69
Connecting to download.virtualbox.org|137.254.16.69|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 238 [text/plain]
Saving to: “virtualbox.repo”

100%[==============================================================>] 238         --.-K/s   in 0s      

2012-06-26 15:03:14 (17.7 MB/s) - “virtualbox.repo” saved [238/238]

 之后, 我们可以采用 yum install VirtualBox 了:

 从上面的输出我们看到, 这个 VirtualBox-4.1 的来源 Repository 是: virtualbox。 我们来细看下 virtualbox.repo 文件内容:

 

[root@lgao yum.repos.d]# cat virtualbox.repo 
[virtualbox]
name=Fedora $releasever - $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/fedora/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc

 

其中:

  • [virtualbox]   为 repository 名称, 表明接下来的数据是针对这个 repository 的, 类似 ini 文件。 一个 repo 文件里可以有多个 [XXX],且全局唯一。
  • name=Fedora $releasever - $basearch - VirtualBox  该 repository 的 summary,全局唯一。 $releasever $basearch 是 yum 的变量, 具体含义请参考 man。 (command:  man 5 yum.conf)
  • baseurl=XXX   从哪里获取 pacakges 列表和 rpm 文件。
  • enabled=1   表示此 repo 启用了。
  • gpgcheck=1  表示需要检查 gpg 签名
  • gpgkey=XXX  用来检查 gpg 签名的 key 文件
创建自己的 Yum repository

  我们已经知道了如何使用第三方的 repo, 那么怎么创建自己的 yum repository 呢。我们从上一篇博客 中知道了如何创建一个 RPM 包, 我们就用这个 RPM 来演示下如何创建自己的 yum repository。

 

   第一步, 选定 yum repository 的 base 地址

 

 

[lgao@lgao ~]$ mkdir -p yum_repo/Packages

 

   我们选定 ~/yum_repo 作为 base 地址, 然后在里面创建一个 Packages 文件夹(可选,且文件夹名称随意)。

 

  第二步,  copy helloworld RPM 到 Packages 目录:

 

[lgao@lgao ~]$ tree yum_repo/
yum_repo/
`-- Packages
    `-- helloworld-1.0.0-1.fc16.i386.rpm

   这就是我们的目录结构。当然也可以简单的将 rpm 文件放在 ~/yum_repo 目录下。

 

  第三步,到 ~/yum_repo 目录下, 运行 createrepo 命令创建 yum repository:

[lgao@lgao ~]$ cd yum_repo/
[lgao@lgao yum_repo]$ createrepo .
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
 

到这里为止, 我们的 yum repository 就创建好了。  如果你的机器里没有  createrepo 命令, 那么请使用:

[lgao@lgao yum_repo]$ sudo yum install createrepo

 来安装。

 

第四步, 创建 helloworld.repo 文件:

[helloworld]
name=Hello World
baseurl=file:///home/lgao/yum_repo
enabled=1
gpgcheck=0

 

  把 hello.repo 文件放在 /etc/yum.repos.d/ 下, 运行:

 

我们运行下 helloworld :

[root@lgao yum.repos.d]# helloworld 
Hello World!

 

 

接下来我们看看如何在 yum repository 里升级 helloworld。

 

生成 helloworld-1.0.1-1.fc16.i386.rpm, 放进 ~/yum_repo/Packages 目录下, 删除 helloworld-1.0.0-1.fc16.i386.rpm, 重新执行 createrepo 命令:

[lgao@lgao yum_repo]$ createrepo .
Spawning worker 0 with 1 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

 

然后执行:

[root@lgao yum.repos.d]# yum clean all
Loaded plugins: langpacks, presto, refresh-packagekit
Cleaning repos: helloworld:virtualbox
Cleaning up Everything
No delta-package files removed by presto

 之后, 再次运行

yum install helloworld

 系统会提示有新版本 helloworld,将进行 update。

 

之后我们再次运行 helloworld:

[root@lgao yum.repos.d]# helloworld 
Hello World in New Version!

 我们发现 helloworld 已经更新了。

 

 

 通过发布一个 repo 文件来发布一套软件让软件安装更加方便,同时也避免了最终用户安装时找不到依赖的问题。 希望越来越多的软件发布采用更加人性化的技术。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值