搭建本地仓库源

news2024/11/15 8:19:07

 一、如何搭建仓库源

         之前讲了定制ISO的方法:使用chroot定制系统,但有时候我们想自定义的安装包不在上游的仓库源中,在我们本地应该怎么办呢?如果我们将deb包拷贝到iso目录再安装有点过于麻烦了,而且还可能需要手动处理一些依赖问题,因此我们可以考虑搭建一个本地或者说内网的仓库源,便于定制系统应用,以下是我创建的例子:

        创建文件夹,当作仓库源的根目录,然后在里面创建子目录或者直接放置deb也行,我这里下载了d-feet的deb安装包,解压之后修改了control文件中的版本和依赖,将版本号加1并新加了qdbus-qt5的依赖:

         然后重新生成了deb包:

dpkg -b d-feet_0.3.16-4_all/

        然后进入到deb目录下生成Packages文件:

sudo apt-ftparchive packages . > Packages

        最后生成Release文件:

sudo apt-ftparchive release . > Release

        这样一个简单的本地仓库源就搭建好了。

        注意:每次更新了仓库中的包之后都要更新这两个文件。

        我们试一下将它添加到本地的list文件中去(可能需要使用root用户):

echo "deb [trusted=yes] file:/home/feng/test/deb ./" >> /etc/apt/sources.list.d/test.list

        注意如果不加[trusted=yes]可能会提示没有数字签名。

        然后更新列表并查看:

feng@feng:~/test/deb$ sudo apt update
[sudo] feng 的密码:
获取:1 file:/home/feng/test/deb ./ InRelease
忽略:1 file:/home/feng/test/deb ./ InRelease
获取:2 file:/home/feng/test/deb ./ Release [816 B]
获取:2 file:/home/feng/test/deb ./ Release [816 B]     
获取:3 file:/home/feng/test/deb ./ Release.gpg                                                                                                                                                             
忽略:3 file:/home/feng/test/deb ./ Release.gpg                                                                                                                                                             
命中:4 http://archive.build.openkylin.top/openkylin yangtze InRelease                                                                                                                                      
命中:5 http://archive.build.openkylin.top/openkylin yangtze-security InRelease                                                                                                                             
命中:6 http://packages.microsoft.com/repos/code stable InRelease                                                                                       
命中:7 http://archive.build.openkylin.top/openkylin yangtze-updates InRelease                                                                          
命中:8 http://software.openkylin.top/openkylin/yangtze default InRelease                                                                               
获取:9 http://cz.archive.ubuntu.com/ubuntu jammy InRelease [270 kB]                                                               
忽略:10 https://www.scootersoftware.com bcompare4 InRelease                             
命中:11 https://www.scootersoftware.com bcompare4 Release
已下载 270 kB,耗时 3秒 (95.7 kB/s)                     
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有 749 个软件包可以升级。请执行 ‘apt list --upgradable’ 来查看它们。


feng@feng:~/test/deb$ sudo apt search d-feet
正在排序... 完成
全文搜索... 完成  
d-feet/未知 0.3.16-4 all [可从该版本升级:0.3.16-3]
  D-Bus object browser, viewer and debugger

        可以看到我自己源中的版本。

        然后看是否能正常安装,在安装之前先强制卸载qdbus-qt5:

sudo dpkg --force-all -P qdbus-qt5 

        安装:

         如图,将会自动安装依赖qdbus-qt5。

二、如何共享仓库源

        搭建仓库源怎么分享给其它人呢?其实方法有很多,可以通过http,ftp,ssh等,这里就介绍通过apach搭建http服务器的用法,也仅限局域网内使用。要在公网上使用分享给别人,应该还需要数字签名等认证才行,这里不做介绍。

        前置条件:假如我们已经在服务器上面搭建好了仓库:/home/lz/deb/

        安装apach2:

sudo apt-get update
sudo apt-get install apache2

        配置http:

        deb.conf名字可变

sudo vim /etc/apache2/sites-available/deb.conf

        写入以下内容保存退出:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/html/deb-repo>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

        将仓库复制到html目录下并修改权限:

sudo cp -a /home/lz/deb/ /var/www/html/
sudo chmod -R +rx /var/www/html/deb/

        然后在客户端机器上添加源到list中即可访问该仓库源:


echo "deb [trusted=yes] http:192.168.2.114:/deb ./" >> /etc/apt/sources.list.d/test.list

这样,在制作镜像的时候,就可以很方便的安装自己的包以及其依赖包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506313.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 常见命令与常见问题解决思路

Linux 常见命令 Linux 基础命令目录相关查看文件&#xff08;日志&#xff09;查看普通的文件查看压缩的文件 解压压缩Linux 系统调优topvmstatpidstatps vi/vim 编辑文件查找文件属性相关定时任务scp 复制文件和目录awk 分隔cutsort 与 uniq常见问题处理思路CPU 高系统平均负载…

数组存储与指针学习笔记(一)数据类型与存储、数据对齐、数据移植、typedef

数据类型与存储 一、数据类型与存储1.1 大端模式与小端模式1.2 有符号数和无符号数1.3 数据溢出1.4 数据类型转换 二、数据对齐2.1 为什么非要地址对齐2.2 结构体对齐2.3 联合体对齐 三、数据的可移植性四、Linux内核中的size_t类型五、typedef5.1 typedef的基本用法5.2 typede…

python操作集合

# 集合 l{1,2,1} print(l) sset(range(5)) print(s)# 判断in 或 not in print(5 not in l) # 集合元素新增操作 l.add(4) l.update(1,3,6) print(l) l.update((1,3,5)) l.update([4,4,6]) # 删除集合元素 l.remove(2) l.discard(2) # 无目的的删除 自己不带参数 l.pop() l.cl…

【跟着陈七一起学C语言】今天总结:C预处理器和C库

友情链接&#xff1a;专栏地址 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的错误&#x…

大语言模型(LLM)和基于人类反馈的强化学习(RLHF)

只需三步&#xff0c;构建你的LLM 预训练语言模型 L L M S S L LLM^{SSL} LLMSSL&#xff08;self-supervised-learning)(指令)监督微调预训练模型 L L M S F T LLM^{SFT} LLMSFT&#xff08;supervised-fine-tuning)基于人类反馈的强化学习微调 L L M R L LLM^{RL} LLMRL&…

K8s常用命令

Namespace 默认情况下&#xff0c;kubernetes集群中的所有的Pod都是可以相互访问的。但是在实际中&#xff0c;可能不想让两个Pod之间进行互相的访问&#xff0c;那此时就可以将两个Pod划分到不同的namespace下。kubernetes通过将集群内部的资源分配到不同的Namespace中&#…

猪场规模怎样划分?类型都有哪些?

养猪场按照经营方式分为大中小猪场&#xff08;猪场规模&#xff09;和集团猪场。集团猪场是指集团化发展与管理的养猪企业&#xff0c;或者简称为集团化养猪企业&#xff0c;重点在于“集团化”。猪场规模则是按照年出栏数量划分。 小规模猪场&#xff1a;年出栏3000头以下&a…

加密芯片在GCP系统的应用方案

物联网&#xff08;IoT&#xff09;设备正在迅速发展&#xff0c;越来越多的设备连接到互联网并与其他设备进行通信。这使得设备的安全变得更加重要&#xff0c;因为它们可能会暴露敏感的数据和功能。Google Cloud IoT Core&#xff08;GCP&#xff09;是一个完全托管的服务&am…

Easydict 简洁易用的翻译词典,带你轻松优雅地查找单词或翻译文本。

Easydict Easydict 是一个简洁易用的翻译词典 macOS App&#xff0c;能够轻松优雅地查找单词或翻译文本。Easydict 开箱即用&#xff0c;能自动识别输入文本语言&#xff0c;支持输入翻译&#xff0c;划词翻译和 OCR 截图翻译&#xff0c;可同时查询多个翻译服务结果&#xff…

喜报丨迪捷软件荣获浙江省专精特新荣誉称号

近日&#xff0c;根据工业和信息化部《优质中小企业梯度培育管理暂行办法》&#xff08;工信部企业〔2022〕63号&#xff09;和《浙江省经济和信息化厅关于印发浙江省优质中小企业梯度培育管理实施细则&#xff08;暂行&#xff09;的通知》&#xff08;浙经信企业〔2022〕197号…

光耦合器的输入电路及重要参数

光耦合器是一种通过使用光能将输入控制信号耦合到输出或负载的器件&#xff0c;其方式使得输入信号和负载&#xff08;输出&#xff09;之间的电气隔离也保持不变。光耦合器的基本功能是通过光能耦合输入和输出电路&#xff08;因此称为光耦合器&#xff09;&#xff0c;并在输…

Monaco Editor编辑器教程(三十):将vue文件作为一种编程语言集成到monaco editor中,实现vue组件的语法,标签高亮。

前言 最近在使用gitlab的web ide时发现当编写一个 vue组件时,文件的后缀名为.vue。在编辑器的右上角会显示当前的编程语言时vue,并且高亮语法或标签,格式化,折叠都表现很优秀。但是其实monaco是不支持vuejs的,作为一名前端开发者,我们有时需要在monaco编辑器中编写vue组…

操作系统学习02

&#xff01;&#xff01;&#xff01;由于感冒和出去玩&#xff0c;好几天没学这些计算机基础知识了&#xff01;&#xff01;&#xff01; 抓紧跟上嘿嘿嘿 1、内存管理主要做了什么 操作系统的内存管理非常重要&#xff0c;主要负责下面这些事情&#xff1a; 内存的分配与…

Windows服务器配置开机自启动

有两种简单实现的方式。 第一种&#xff0c;直接将可执行文件或脚本的快捷方式放置到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 这个文件夹里&#xff0c;服务器在启动的时候会自动执行。 第二种&#xff0c;配置为windows系统服务 利用winsw来将可…

HMC408LP3ETR-ASEMI代理亚德诺HMC408LP3ETR原厂芯片

编辑-Z HMC408LP3ETR参数描述&#xff1a; 型号&#xff1a;HMC408LP3ETR 频率范围&#xff1a;5.1 - 5.9 GHz 增益&#xff1a;20 dB 输入回波损耗&#xff1a;8 dB 输出回波损耗&#xff1a;6 dB 1dB压缩的输出功率&#xff1a;27 dBm 饱和输出功率&#xff1a;31 dB…

鬼畜提问变身指南:ChatGPT十个打破常规的提问公式

Chatgpt的恐怖之处不在于它有多么的准确&#xff0c;很多时候它的回答甚至充满常识性错误&#xff0c;比如你问美国为什么轰炸珍珠岛它都能一本正经的回答你&#xff08;这当然也有中文语料数据投喂不足和中文本身就复杂而难以理解的原因&#xff0c;听说用英文提问的准确性会提…

openeuler 22.03 制作openssh9.3p1 rpm升级包和升级实战

一、背景说明 openeuler 22.03 默认安装的openssh 版本为8.8p1&#xff0c;经绿盟扫描&#xff0c;存在高危漏洞&#xff0c;需要升级到最新。 官网只提供编译安装包&#xff0c;而openeuler 22.03 为rpm方式安装。 为了方便升级&#xff0c;先通过编译安装包&#xff0c;制…

OpenCV中的图像处理3.7-3.8(五)边缘检测、图像金字塔

目录 3.7 边缘检测目标理论OpenCV中的Canny边缘检测其他资源练习 3.8 图像金字塔目标理论使用金字塔进行图像混合其他资源 翻译及二次校对&#xff1a;cvtutorials.com 编辑者&#xff1a;廿瓶鲸&#xff08;和鲸社区Siby团队成员&#xff09; 3.7 边缘检测 目标 在本章中&a…

搭建jaegerAll in one 测试环境

1. Jaeger介绍 Jaeger 受 Dapper 和 OpenZipkin 的启发&#xff0c;是由 Uber Technologies 发布的开源分布式追踪系统。它用于监控和排查基于微服务的分布式系统问题&#xff0c;包括: 分布式上下文传播分布式事务监控根因分析服务依赖关系分析性能 / 延迟优化 Jaeger 架构…

初识TypeScript与静态类型解析

一、初识ts 二、如何运行ts代码 假如本地新建了一个b.ts文件 安装TypeScript&#xff1a;npm install -g typescript 编译代码&#xff1a;tsc b.ts 运行js&#xff1a;node b.js 在终端输入 tsc -init 生成 tsconfig.json 文件 类型注解&#xff1a;TypeScript里的类型注解是一…