Ubuntu挂载iso文件和配置apt本地源

版本说明:Ubuntu Server 16.04 LTS
解决问题:解决在无任何互联网的环境下,安装软件时缺少依赖包的问题

方法一:通过虚拟机挂载
  1. 将镜像挂载到虚拟机
    以VMware Workstation为例,打开“虚拟机设置”,点击“CD/DVD”选项,将 “设备状态”中的“已连接”勾选上。然后选择下方“使用ISO镜像文件”,点击浏览,选择与虚拟机操作系统相同的系统镜像文件即可。
    在这里插入图片描述

  2. 进行iso挂载

# 执行下面三条命令进行iso挂载

## 如果这一步有报错找不到CD-romm,可以将上一步的CD/DVD删掉重新添加一次,重启系统再执行下面命令
mkdir /media/cdrom

#mount 挂载镜像到本地目录
mount -t iso9660 -o loop /dev/sr0 /media/cdrom (或者:mount -t auto /dev/cdrom /media/cdrom)
#备注:
#/dev/cdrom 与 /dev/sr0都是系统文件名,两个在光盘挂载时是一样的,所以用哪个都行。/media/cdrom是挂载点,是自定义的。
#如果用完想退出光盘镜像文件的话,必须先解除挂载。umount命令加系统文件名或挂载点,如umount /dev/sr0

#添加本地目录到软件源
sudo apt-cdrom -m -d=/media/cdrom add
  1. 查看apt源地址
cat /etc/apt/sources.list

文件中包含下图部分说明本地软件已经配置好;如果不用在线的软件源,则将其他的注释掉只保留本地源即可。
在这里插入图片描述
4. 测试是否成功

#进行本地库依赖更新 
apt-get update
#升级软件包
apt-get upgrade

在这里插入图片描述

方法二:通过本地iso文件
  1. 创建目录
mkdir /mnt/iso/

chmod -R 777 /mnt/iso

将镜像文件ubuntu-16.04.2-server-amd64.iso上传到目录/mnt下

  1. 挂载iso镜像到目录下
#挂载命令
sudo mount -t iso9660 -o loop /mnt/ubuntu-16.04.2-server-amd64.iso  /mnt/iso

操作之后,即可将iso文件挂载到/mnt/iso目录下,我们可以查看下/mnt/iso目录已经有ubuntu-16.04.2-server-amd64.iso 的文件了。
在这里插入图片描述
3. 配置软件源
将在线源修改本地的apt源地址,这里修改的是/etc/apt/下的sources.list文件,修改之前记得先备份一份(执行命令 : sudo cp /etc/apt/sources.list /etc/apt/sources.list.back),将文件中的deb在线apt源注释掉(白色的这些),修改完成后保存文件。

在这里插入图片描述
4. 添加本地软件源

sudo apt-cdrom -m -d=/mnt/iso add
  1. 测试本地软件是否已经设置成功
sudo apt-get update 

sudo apt-get upgrade

显示如下则说明已经成功了安装本地源。
在这里插入图片描述

常用依赖安装
  1. 安装build-essential (必安装)
    build-essential聚合了一些常用的依赖,如make、gcc等。Nginx、redis等安装需要这些依赖包。对于一个离线的系统安装很多软件都是必要的。
apt-get install build-essential

apt本地源中也存在很多找不到的包,出现找不到的包也只有到网上找到相关deb包然后手动进行安装。

出现下列依赖问题问题可能导致build-essential安装不成功:
在这里插入图片描述
主要是由于源的版本与系统版本不匹配;说明系统已经安装的依赖版本大于需要依赖的版本。这时候需要将高版本的依赖进行卸载,然后再次执行安装命令。

对于下图的libc6-i386来说,需要依次执行下面两个命令将原来版本移除后,再次进行进行安装。

dpkg -l | grep libc6-i386
dpkg -r libc6-i386
dpkg -l | grep libgo
dpkg -r libgomp1

执行完成后,再进行libc6-i386的安装

apt-get install libc6-i386

安装成功后再安装build-essential

apt-get install build-essential

成功如下图:
在这里插入图片描述

查看gcc版本:成功后执行,说明一些必须的依赖都已经安装完成。

gcc -v

在这里插入图片描述

  1. Oracle客户端的依赖
    再前面build-essential已经成功安装之后,从ubuntu的包管理网站上下载相关的包进行离线安装
    在这里插入图片描述
dpkg -i libaio1_0.3.110-2_amd64.deb
dpkg -i libaio-dev_0.3.110-2_amd64.deb
内容概要:本文档主要介绍了如何在Ubuntu Server 24.04.1系统上搭建内网APT源,涵盖环境准备、镜像配置、同步及发布、以及客户端配置。首先介绍了所需操作系统及其体系架构与网络条件。接着阐述了两种配置源的方式,即阿里云或清华源,在获取到指定源之后通过命令apt-get install apt-mirror配置/etc/apt/mirror.list来设置镜像参数,如本地存储路径(base_path)、下载线程(nthreads)等。完成配置后利用命令同步数据,随后利用Nginx进行源发布——这涉及到新建nginx用户、创建软连接指向下载下来的源,并解决可能出现的访问权限(404等)。对于客户端,则需要更新其/etc/apt/sources.list.d配置文件,以新的源IP替代旧有的公网地址,从而实现内部局域网内的apt包管理。 适用人群:负责企业级Linux服务器运维人员、熟悉Ubuntu操作系统的IT管理人员以及具有一定技术水平,有搭建私有或内网镜像服务经验的相关技术人员。 使用场景及目标:①提高公司或团队在封闭网络环境下软件更新、部署效率;②降低对外部互联网的依赖,保障敏感数据安全性,满足定制化需求或特殊网络环境下的应用交付任务。 其他说明:在具体实施过程中应当确保各步骤命令正确无误地被执行;考虑到安全因素,在实际环境中还需根据实际情况对暴露的服务端口做额外的安全限制,比如仅开放局域网范围内可访问;若出现问题可通过官方文档查阅更多信息,或者联系专业人士协助排查故障。
<think>好的,我现在需要帮助用户解决在Ubuntu系统中挂载本地源的问题。用户之前询问过关于Cursor插件无法启动的问题,但现在转向了Ubuntu系统配置,这可能意味着用户正在处理服务器或开发环境中的配置任务,可能涉及到软件源的本地化管理以提高效率或解决网络问题。 首先,用户提供的引用内容中有多个关于Ubuntu配置软件镜像挂载本地源的资料。引用1详细描述了如何配置远程镜像源,而引用2、3、4提到了挂载ISO文件配置本地APT源以及处理权限问题。用户的当前问题是关于挂载本地源的教程,因此需要综合这些信息,特别是引用23中的步骤。 我需要先理解挂载本地源的基本步骤。通常,这涉及将ISO文件或本地目录作为软件源,配置APT使用这些源。引用2提到使用`apt-cdrom`命令挂载ISO,引用3则讨论了将deb包复制到内网目录并生成Packages.gz文件。因此,用户可能需要两种方法:一种是使用ISO镜像,另一种是使用本地目录的deb包。 接下来要考虑用户可能的场景。用户可能需要在没有网络连接的环境中安装软件,或者希望加快软件安装速度,或者需要维护一个内部的软件仓库。根据引用3中的内容,用户可能在内网环境中,需要配置本地源,这涉及到打包依赖生成索引文件。 需要检查步骤的正确性。例如,挂载ISO的步骤是否正确,是否需要在/etc/apt/sources.list中添加正确的条目。另外,引用3中的权限问题需要注意,比如创建目录时的权限设置,以及处理Packages.gz时的命令是否正确。 用户可能遇到的常见问题包括权限不足(如引用3中的Permission denied)、路径错误、索引生成失败等。因此,在教程中需要包含故障排查部分,例如检查目录权限、确保路径正确、手动生成索引等。 还需要考虑不同Ubuntu版本之间的差异,比如sources.list中的格式是否一致,以及命令是否有变化。用户提供的引用中涉及Ubuntu 22.0421.04,但步骤应该大致相同,不过需要指出版本兼容性。 最后,生成相关问题,帮助用户进一步解决可能遇到的问题,比如如何验证本地源是否生效,如何处理依赖关系,如何更新本地源等。这些问题需要基于引用中的内容常见的使用场景来设计。 总结来说,我需要将引用中的信息整合成一个清晰的步骤指南,涵盖两种方法(ISO挂载本地目录),确保命令准确,并包含注意事项故障排查提示。同时,要使用用户之前提到的格式,如代码块、引用标识等,保持回答结构清晰,符合用户的要求。</think>根据Ubuntu系统配置本地源的典型需求,以下是两种主流方法的详细操作指南,整合了镜像挂载本地仓库配置方案: ### 一、ISO镜像挂载方案(适用物理介质) ```bash # 创建挂载点并加载ISO sudo mkdir -p /mnt/ubuntu-iso sudo mount -o loop ubuntu-22.04.3-live-server-amd64.iso /mnt/ubuntu-iso # 验证挂载状态 lsblk | grep loop ``` 此时应看到类似输出: ``` loop0 7:0 0 3.7G 1 loop /mnt/ubuntu-iso ``` 通过APT-CDROM识别(关键步骤): ```bash sudo apt-cdrom -m -d=/mnt/ubuntu-iso add ``` 该命令会自动修改`/etc/apt/sources.list`,添加条目: ``` deb [trusted=yes] cdrom:[Ubuntu 22.04 LTS _Jammy Jellyfish_ - Release amd64 (20230303)]/ jammy main restricted ``` ### 二、本地仓库配置方案(推荐内网环境) 1. **仓库目录构建** ```bash sudo mkdir -p /var/local-repo/ubuntu sudo cp *.deb /var/local-repo/ubuntu # 批量拷贝软件包 ``` 2. **索引生成(核心步骤)** ```bash cd /var/local-repo dpkg-scanpackages ubuntu /dev/null | gzip > ubuntu/Packages.gz ``` 注意目录层级关系,典型结构: ``` /var/local-repo/ └── ubuntu ├── Packages.gz ├── package1.deb └── package2.deb ``` 3. **APT配置** ```vim # /etc/apt/sources.list 添加 deb [trusted=yes] file:/var/local-repo ubuntu/ ``` 4. **权限修正(常见问题预防)** ```bash sudo chown -R _apt:root /var/local-repo # 解决pkgAcquire::Run权限错误[^3] ``` ### 三、操作验证流程 1. 更新源并检查: ```bash sudo apt update apt-cache policy | grep local-repo # 应显示本地源优先级 ``` 2. 安装测试: ```bash sudo apt install -y cowsay --allow-unauthenticated ``` ### 四、典型故障处理 | 现象 | 解决方案 | |-------|---------| | `Ign file:ubuntu/ Release` | 检查Packages.gz是否存在`file://`前缀是否多余 | | `Hash Sum mismatch` | 执行`sudo rm -rf /var/lib/apt/lists/*` | | `Unmet dependencies` | 使用`dpkg-scanpackages --multiversion`生成索引 | --相关问题-- 1. 如何验证本地源的优先级高于远程仓库? 2. 在内网环境中如何批量下载deb软件包? 3. 本地源配置后出现数字签名验证失败怎么处理? 4. 如何将ISO镜像与本地仓库合并使用? [^1]: 镜像配置参考 [^2]: 本地ISO挂载方法 [^3]: 权限问题解决方案
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值