INSTALL_FAILED_MEDIA_UNAVAILABLE错误处理

问题描述:

在android手机上安装apk的时候,报错如下:

Installation error: INSTALL_FAILED_MEDIA_UNAVAILABLE

Please check logcat output for more details.

Launch canceled!


上网搜了搜原因发现是某些应用程序(如360、91手机助手)造成手机无法在SD卡上安装程序

 

解决方法:

果断卸载这些垃圾软件,然后使用adb shell让手机自己选择安装在哪里,命令如下:

adb shell

pm set-install-location 0


不同的set-install-location说明:

pm set-install-location 0 由App自行决定软件能否安装在SD卡

pm set-install-location 1 强制全部App安装在ROM内

pm set-install-location 2 强制全部App安装在SD卡



[root@master etc]# systemctl status ntpd Unit ntpd.service could not be found. [root@master etc]# yum install -y ntp 已加载插件:fastestmirror file:///media/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /media/repodata/repomd.xml" 正在尝试其它镜像。 One of the configured repositories failed (CentOS-7 - Media), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Run the command with the repository temporarily disabled yum --disablerepo=c7-media ... 4. Disable the repository permanently, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable c7-media or subscription-manager repos --disable=c7-media 5. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=c7-media.skip_if_unavailable=true failure: repodata/repomd.xml from c7-media: [Errno 256] No more mirrors to try. file:///media/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /media/repodata/repomd.xml 应该怎么处理?
最新发布
11-06
<think>首先,用户的问题是关于CentOS 7系统中ntpd服务找不到和yum安装ntp时的问题。具体问题是: 1. ntpd服务找不到(引用中提到`ntpd.service` inactive)。 2. yum安装ntp时,提示`file:///media/repodata/repomd.xml`无法打开,仓库失败。 从引用中提取相关部分: - 引用[1]:提到了yum仓库路径和配置文件。这涉及到yum仓库的设置。 - 引用[2]:描述了配置操作系统本地repo,挂载系统ISO文件到`/media/iso/`。 - 引用[3]:显示ntpd服务状态为inactive。 - 引用[4]和[5]:不太直接相关,是关于其他环境的配置。 用户上传的引用可能是上下文的一部分,但核心问题是解决ntp安装和ntpd服务问题。 关键点: - 用户尝试安装ntp时,yum使用的是本地仓库(`file:///media/...`),但失败了。 - 可能的原因是本地仓库配置不正确,或者ISO文件没有正确挂载。 - 另外,ntpd服务找不到,可能是因为ntp包没有安装成功。 解决步骤: 1. **确保本地仓库正确配置**:用户已经挂载了CentOS 7的系统ISO到`/media/iso/`。但在引用[2]中,路径是`/media/iso/`,而yum错误提到`file:///media/repodata/repomd.xml`。这暗示yum仓库配置可能指向错误的路径。 - 典型的本地repo配置:在`/etc/yum.repos.d/`下创建一个repo文件,指向挂载点。 2. **正确配置本地repo**:用户应该在`/etc/yum.repos.d/`下定义一个repo文件指向`/media/iso/`。错误消息说`file:///media/repodata/repomd.xml`无法打开,这表明yum在查找`/media/repodata/`,但用户挂载点在`/media/iso/`。所以,仓库配置可能需要修正。 3. **安装ntp包**:一旦仓库配置正确,就可以用yum安装ntp。 4. **启动并启用ntpd服务**:安装后,启动服务。 5. **处理ntpd服务状态**:如果服务找不到,可能包未安装;安装后应该可用。 系统级指令要求: - 所有行内数学表达式用`$...$`格式,但这里可能不涉及数学,所以可以忽略。 - 独立公式用`$$...$$`,同样可能不适用。 - LaTeX语法正确:需要确保代码块或命令格式正确。 - 使用中文回答。 - 生成相关问题:在结束时,基于内容生成相关问题。 回答结构: - 清晰、逐步解决问题。 - 参考引用:引用中提到了一些路径和步骤,我需要自然地引用它们。 从引用[2],用户已经挂载了ISO到`/media/iso/`:`mount -o loop CentOS-7-x86_64-DVD-1804.iso /media/iso/`。 Yum错误是找不到`file:///media/repodata/repomd.xml`,这表明仓库配置可能指定了`baseurl=file:///media/`,但repodata应该在挂载点下。 正确配置:在repo文件中,baseurl应该指向挂载点的实际路径,例如`file:///media/iso/`。 步骤总结: 1. **检查ISO挂载**:确保ISO已挂载到`/media/iso/`。 2. **配置本地repo文件**: - 在`/etc/yum.repos.d/`下创建一个repo文件,例如`local.repo`。 - 内容类似: ``` [local] name=CentOS-7 - Media baseurl=file:///media/iso/ gpgcheck=0 enabled=1 ``` - 注意:`baseurl`必须匹配挂载路径。引用中的错误是`/media/`,但挂载点是`/media/iso/`,所以需要修正。 3. **禁用其他可能冲突的仓库**:用户可能有其他仓库启用,导致冲突。可以临时disable其他repo或确保本地repo正确。 4. **清理yum缓存并安装**: - `yum clean all` - `yum makecache` - `yum install ntp` 5. **启动服务**: - `systemctl start ntpd` - `systemctl enable ntpd` 6. **检查服务状态**:`systemctl status ntpd` 在回答中,自然地引用相关引用。例如: - 引用[2]中提到挂载ISO到`/media/iso/`[^2]。 - 引用[1]提到yum仓库路径[^1]。 生成相关问题:结束时,基于主题生成几个相关问题。 最终回答结构: 1. 解释问题原因。 2. 逐步解决方案。 3. 确认步骤。 4. 相关问题。 </think>### CentOS 7系统中ntpd服务找不到及yum安装ntp失败问题的解决方案 在CentOS 7系统中,您遇到的两个问题(ntpd服务找不到和yum安装ntp时因本地仓库配置失败)通常是由于本地Yum仓库配置不当或ISO挂载路径错误导致的。根据您提供的引用信息(如引用[2]显示系统ISO已挂载到`/media/iso/`[^2],但yum错误提示`file:///media/repodata/repomd.xml`无法打开),这很可能是因为Yum仓库文件中的`baseurl`指向了错误的路径(应为`/media/iso/`而非`/media/`)。以下是逐步解决方案,确保操作清晰可靠。操作前,请确保您具有 root 权限(使用 `sudo su` 或直接以 root 用户登录)。 --- ### 步骤 1: 验证ISO挂载状态 首先,确认CentOS 7系统ISO文件是否正确挂载到 `/media/iso/` 目录。引用[2]中提到的方法是将ISO上传到 `/media/` 并挂载[^2]。执行以下命令检查: ```bash # 查看挂载点内容 ls -l /media/iso/ # 检查是否有repodata目录(关键文件如repomd.xml应在此目录下) ls /media/iso/repodata/ ``` - 如果输出显示 `repomd.xml` 和其他文件,说明挂载成功。 - 如果挂载点为空或不存在,需重新挂载ISO: ```bash # 创建挂载点(如果不存在) mkdir -p /media/iso # 挂载ISO文件(假设ISO文件在/media/目录下) mount -o loop /media/CentOS-7-x86_64-DVD-1804.iso /media/iso/ # 验证只读挂载(正常输出应为read-only) mount | grep /media/iso ``` 挂载成功后,路径 `/media/iso/repodata/repomd.xml` 应可访问[^2]。 --- ### 步骤 2: 修正本地Yum仓库配置 错误 `file:///media/repodata/repomd.xml` 表明Yum仓库配置指向了无效路径(应为 `/media/iso/`)。引用[1]指出Yum仓库配置文件在 `/etc/yum.repos.d/` 目录下[^1]。按以下步骤修正: 1. **禁用或移除冲突仓库文件**: ```bash # 备份原有仓库文件 mv /etc/yum.repos.d/CentOS-Media.repo /etc/yum.repos.d/CentOS-Media.repo.bak # 如果有其他冲突repo(如epel),暂时禁用 sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*.repo ``` 2. **创建或编辑本地仓库文件**: ```bash # 新建本地仓库配置文件 vi /etc/yum.repos.d/local.repo ``` 添加以下内容(确保 `baseurl` 指向正确挂载点 `/media/iso/`): ```ini [local] name=CentOS-7 - Media (Local Repository) baseurl=file:///media/iso/ gpgcheck=0 # 禁用GPG检查以避免签名问题 enabled=1 # 启用此仓库 ``` 保存并退出(Vi编辑器:按 `Esc` 后输入 `:wq`)。 3. **清理Yum缓存并测试仓库**: ```bash # 清理旧缓存 yum clean all # 重建缓存(应输出 local-repo 的元数据) yum makecache ``` - 如果成功,会显示类似 `local: files in 0.0 seconds` 的信息。 - 如果仍报错 `file:///media/repodata/repomd.xml`,检查 `/media/iso/repodata/` 是否存在 `repomd.xml` 文件(步骤1已覆盖)。 --- ### 步骤 3: 安装ntp包并启用ntpd服务 仓库配置正确后,安装ntp包即可解决服务找不到的问题(ntpd服务依赖于ntp包安装)。引用[3]显示ntpd服务状态为 inactive,这是因为包未安装成功[^3]。 ```bash # 安装ntp包 yum install ntp -y # 验证安装 rpm -q ntp ``` 安装完成后,启动并启用ntpd服务: ```bash # 启动服务 systemctl start ntpd # 设置开机自启 systemctl enable ntpd # 检查服务状态(应显示 active) systemctl status ntpd ``` - 输出中应有 `Active: active (running)`,表明服务已正常运行。 --- ### 步骤 4: 验证和故障排除 - **测试NTP服务**: ```bash # 查看时间同步状态 ntpq -p # 如果输出显示远程服务器,说明ntpd工作正常。 ``` - **常见问题处理**: - **如果yum安装仍失败**:确保仓库文件无语法错误(使用 `yum repolist` 检查是否列出 `local-repo`)。 - **如果ntpd服务启动失败**:检查防火墙是否允许NTP(UDP端口123): ```bash firewall-cmd --add-service=ntp --permanent firewall-cmd --reload ``` - **ISO挂载持久化**:重启后挂载失效会导致yum失败。编辑 `/etc/fstab` 添加持久挂载(参考引用[2])[^2]: ```bash echo "/media/CentOS-7-x86_64-DVD-1804.iso /media/iso iso9660 loop,ro 0 0" >> /etc/fstab mount -a ``` --- ### 总结 通过以上步骤,您的问题应已解决: - **Yum仓库失败**:由错误的 `baseurl` 路径导致,修正为 `file:///media/iso/` 后即可正常安装。 - **ntpd服务找不到**:因ntp包未安装,安装后服务自动可用。 此方案基于CentOS 7的标准配置,可靠性高。引用[1][2][3]提供了关键路径和上下文支持[^1][^2][^3]。如果问题持续,建议上传仓库配置文件和 `yum install` 的错误日志以进一步诊断。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值