草庐IT

Linux yum搭建私有仓库

背对背依靠 2023-03-28 原文

搭建yum仓库需要两种资源:

  • rpm软件包

  • 元数据信息(repodata)

搭建好仓库后需要使用三种网络协议共享出来

  • http或https

  • ftp

范例:

使用http协议搭建私有仓库
#使用光盘作为源

#下载并启动实现http协议的httpd服务软件
	yum -y install httpd
	systemctl enable --now httpd

#在指定的目录下面创建对应的目录文件
	mkdir /var/www/html/centos/8 -p
	mount /dev/sr0 /mnt/ #挂载本地光盘到指定文件夹
	cp -a /mnt/* /var/www/html/centos/8 #把光盘里面的文件复制到对应文件

#此时yum私有仓库就已经搭建好了。
服务端使用搭建好的私有仓库
#编写对应的配置文件
[root@repo-client ~]#cat /etc/yum.repos.d/test.repo

[BaseOS] #仓库唯一标识
name=BaseOS   #说明
baseurl=http://10.0.0.8/centos/8/BaseOS #仓库路径
gpgkey=0

[AppStream]
name=Appstream
baseurl=http://10.0.0.8/centos/8/AppStream/
gpgkey=0

#enable=1不写默认就是开启enable=1

只有软件包,没有元数据

如果创建的私有仓库里面只有rpm软件包,没有repodata这个元数据信息目录,可以使用createrepo这个工具来生成repodata。

#格式:
createrepo 存放软件包的目录

范例:

使用互联网上面的epel源搭建私有仓库

1.把epel源中的rpm包下载下来

2.将下载的软件包放到指定的目录
#配置epel源
cat /etc/yum.repos.d/base.repo
	[epel]
	name=EPEL
	baseurl=https://mirrors.aliyun.com/epel/8/Everything/x86_64/ #也可以是其他的
	gpgcheck=0

yum reposync --repoid=epel --download-metadata  -p  /var/www/html  #下载epel源

#-repoid=epel:指定使用的仓库,会从这个仓库的指定路径去下载

#-P:指定路径

#--download-metadata:下载元数据信息(repodata这个目录)

#下载完成后会在指定目录下生成一个叫epel的子目录

下载软件包的时候会顺便把相关的依赖都下载下来。卸载的时候相关依赖不会跟着卸载。(centos8不存在这个问题)

卸载某个软件包的时候把对应的依赖也卸载
  1. 使用yum history 查看执行过的历史纪录

  2. 使用 yum undo number(history中的编号)进行卸载 --- 相当于重装

下载软件包的时候会顺便把相关的依赖都下载下来。卸载的时候相关依赖不会跟着卸载 #centos8会自动卸载掉依赖

yum history --- 查看yum的历史事务

yum history info yum的历史事务编号id --- 查看这个是事务都干了些啥

yum日志文件

#CentOS 7以前版本日志
	/var/log/yum.log

#CentOS 8 版本日志
	/var/log/dnf.rpm.log
	/var/log/dnf.log

有关Linux yum搭建私有仓库的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

  4. ruby - 从另一个私有(private)方法中使用 self.xxx() 调用私有(private)方法 xxx,导致错误 "private method ` xxx' called” - 2

    我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是

  5. ruby - 如何在 Ruby 中实现私有(private)内部类 - 2

    来自Java,我正在尝试在Ruby中实现LinkedList。我在Java中实现它的通常方法是有一个名为LinkedList的类和一个名为Node的私有(private)内部类,其中LinkedList的每个对象都作为Node对象。classLinkedListprivateclassNodeattr_accessor:val,:nextendend我不想将Node类暴露给外部世界。然而,通过Ruby中的这个设置,我可以使用这个访问LinkedList类之外的私有(private)Node类对象-node=LinkedList::Node.new我知道,在Ruby1.9中,我们可以使用

  6. ruby 私有(private)类方法助手 - 2

    您好,我正在尝试创建一个帮助程序,用于将ruby​​方法大量定义为私有(private)类方法。通常,可以通过使用private_class_method键工作将方法定义为私有(private)类方法。但我想创建一个以下样式的助手:classPersondefine_private_class_methodsdodefmethod_oneenddefmethod_twoendendend我计划通过以下方式动态定义它,但根本不起作用:classObjectdefself.define_private_class_methods&blockinstance_evaldoprivate&bl

  7. ruby - 使实例方法在运行时私有(private) - 2

    在另一个对象中注册该对象后,我需要将一些实例方法设为私有(private)。我不想卡住对象,因为它必须保持可编辑状态,只是功能较少。而且我不想取消定义这些方法,因为它们是在内部使用的。我需要的是这样的:classMyClassdefmy_methodputs"Hello"endenda=MyClass.newb=MyClass.newa.my_method#=>"Hello"a.private_instance_method(:my_method)a.my_method#=>NoMethodErrorb.my_method#=>"Hello"有什么想法吗?

  8. ruby - Ruby 导入的方法总是私有(private)的吗? - 2

    最好用一个例子来解释:文件1.rb:deffooputs123end文件2.rb:classArequire'file1'endA.new.foo将给出错误“':调用了私有(private)方法'foo'”。我可以通过执行A.new.send("foo")来解决这个问题,但是有没有办法公开导入的方法?编辑:澄清一下,我没有混淆include和require。另外,我不能使用正常包含的原因(正如许多人正确指出的那样)是因为这是元编程设置的一部分。我需要允许用户在运行时添加功能;例如,他可以说“run-this-app--includefile1.rb”,应用程序的行为将根据他在file1

  9. ruby-on-rails - 私有(private) gem 没有安装在 docker 中 - 2

    我正在尝试使用docker运行一个Rails应用程序。通过github的sshurl安装的gem很少,如下所示:Gemfilegem'swagger-docs',:git=>'git@github.com:xyz/swagger-docs.git',:branch=>'my_branch'我在docker中添加了keys,它能够克隆所需的repo并从git安装gem。DockerfileRUNmkdir-p/root/.sshCOPY./id_rsa/root/.ssh/id_rsaRUNchmod700/root/.ssh/id_rsaRUNssh-keygen-f/root/.ss

  10. ruby - 从私有(private)实例方法调用私有(private)类方法 - 2

    我是Ruby新手,来自C#世界。在C#中,这样做是合法的:publicclassTest{publicvoidMethod(){PrivateMethod();}privatevoidPrivateMethod(){PrivateStaticMethod();}privatestaticvoidPrivateStaticMethod(){}}是否可以在Ruby中做类似的事情?一些背景知识:我有一个Rails应用程序...其中一个模型有一个私有(private)方法来设置一些依赖项。有一个类方法可以创建模型的初始化实例。由于遗留原因,模型的某些实例未正确初始化。我添加了一个实例方法来初始

随机推荐