fedora23新系统没网时使用以前缓存的rpm包
来源:互联网 发布:证件照蓝底渐变软件 编辑:程序博客网 时间:2024/06/05 00:32
#!/bin/bash
# Sat Aug 13 05:43:38 EDT 2016
# 这个脚本为单一用途设计. 情况是这样的, 我在用fedora23, 我设置了使用
# 163镜象站为yum源, 但是以网站为yum源必须连网才能用, 我不是随时有网,
# 我就想把163镜象站那个目录下载下来, 一个yum源应该包括两个目录, 一个repodata
# 和一个Packages, repodata保存了这个源一些信息, 约106M, Packages的内容的所有
# 实际rpm包, 非常大, 这个源又是"Everything", 意思是包含了所有的包, 估计至少有
# 几十G, 不可能整个下载下来.
# 我以前通过163镜象源已经安装了很多包, 这些包都保存着没有删除, 它们以缓存的身
# 份在一个目录下. 我下载了repodata, 但是repodata不能直接使用这些缓存的rpm包,
# repodata只会在同目录的Packages目录下找包, 它当然找不到, 就报错. 我就想写一
# 个脚本, 对这些已缓存的包, 做一个链接在Packages下不就行了. 几千个包, 不可能
# 手动做这个工作, 必须写脚本.
# 哇, 太棒了, 我终于能不连网用dnf命令了,
Packages_dir='/home/fedora-23-live-mate/Packages';
repodata_dir='/home/fedora-23-live-mate/repodata';
cache_dir='/home/fedora-23-live-mate/Packages/163-2bc373219fe8a076/packages';
function ooSingle()
{
if [ $# == 0 ]
then
return 0;
fi
local PackageName="$1";
local PackageNameFirstChar=${PackageName:0:1};
local Package_dir2="$Packages_dir"/"$PackageNameFirstChar";
mkdir "$Package_dir2" -p 2>/dev/null;
local PackageSymName="$Package_dir2"/"$PackageName";
local PackageCacheName="$cache_dir"/"$PackageName";
if [ ! -e "$PackageSymName" ]
then
ln -s "$PackageCacheName" "$PackageSymName";
echo "create link for $PackageName";
fi
return 0;
}
function ooAll()
{
Pwd=`pwd`;
cd "$cache_dir";
for x in `ls *.rpm`
do
ooSingle "$x";
done
return 0;
cd "$Pwd";
}
if [ $# = 0 ]
then
:
elif [[ ($# -eq 1) && ($1 = 'ooAll') ]]
then
ooAll;
elif [[ ($# -eq 2) && ($1 = 'ooSingle') ]]
then
ooSingle "$2";
fi
# Sat Aug 13 05:43:38 EDT 2016
# 这个脚本为单一用途设计. 情况是这样的, 我在用fedora23, 我设置了使用
# 163镜象站为yum源, 但是以网站为yum源必须连网才能用, 我不是随时有网,
# 我就想把163镜象站那个目录下载下来, 一个yum源应该包括两个目录, 一个repodata
# 和一个Packages, repodata保存了这个源一些信息, 约106M, Packages的内容的所有
# 实际rpm包, 非常大, 这个源又是"Everything", 意思是包含了所有的包, 估计至少有
# 几十G, 不可能整个下载下来.
# 我以前通过163镜象源已经安装了很多包, 这些包都保存着没有删除, 它们以缓存的身
# 份在一个目录下. 我下载了repodata, 但是repodata不能直接使用这些缓存的rpm包,
# repodata只会在同目录的Packages目录下找包, 它当然找不到, 就报错. 我就想写一
# 个脚本, 对这些已缓存的包, 做一个链接在Packages下不就行了. 几千个包, 不可能
# 手动做这个工作, 必须写脚本.
# 哇, 太棒了, 我终于能不连网用dnf命令了,
Packages_dir='/home/fedora-23-live-mate/Packages';
repodata_dir='/home/fedora-23-live-mate/repodata';
cache_dir='/home/fedora-23-live-mate/Packages/163-2bc373219fe8a076/packages';
function ooSingle()
{
if [ $# == 0 ]
then
return 0;
fi
local PackageName="$1";
local PackageNameFirstChar=${PackageName:0:1};
local Package_dir2="$Packages_dir"/"$PackageNameFirstChar";
mkdir "$Package_dir2" -p 2>/dev/null;
local PackageSymName="$Package_dir2"/"$PackageName";
local PackageCacheName="$cache_dir"/"$PackageName";
if [ ! -e "$PackageSymName" ]
then
ln -s "$PackageCacheName" "$PackageSymName";
echo "create link for $PackageName";
fi
return 0;
}
function ooAll()
{
Pwd=`pwd`;
cd "$cache_dir";
for x in `ls *.rpm`
do
ooSingle "$x";
done
return 0;
cd "$Pwd";
}
if [ $# = 0 ]
then
:
elif [[ ($# -eq 1) && ($1 = 'ooAll') ]]
then
ooAll;
elif [[ ($# -eq 2) && ($1 = 'ooSingle') ]]
then
ooSingle "$2";
fi
0 0
- fedora23新系统没网时使用以前缓存的rpm包
- rpm 包的使用
- rpm包在Ubuntu系统不能使用
- rpm -qa 用于查询系统中所有的rpm包
- RedHat下的RPM包的使用
- linux下面rpm包的使用总结
- linux中的包管理器rpm的使用
- 使用RPM包进行MYSQL的安装
- 使用RPM包管理命令的笔记
- 使用RPM管理包
- linux RPM包使用
- fedora23 下使用jlink的方法
- linux系统下rpm包的安装、删除、效验、查询
- linux系统下rpm包的安装、删除、效验、查询
- linux系统下rpm包的安装、删除、效验、查询
- Ubuntu系统中安装RPM格式包的方法
- Ubuntu系统中安装RPM格式包的方法
- 常见linux系统中RPM包的通用命名规则
- HTML5新增标签
- MatConvNet 源码解析
- 用面向对象的方法求圆的面积
- linux安装python3.5
- HDOJ 5726 线段树 + map
- fedora23新系统没网时使用以前缓存的rpm包
- #138 Subarray Sum
- 2016.07.16【初中部 NOIP提高组 】模拟赛C题解
- IEEE 754 标准
- 搭建Elasticsearch分布式集群
- is not in the sudoers file
- R语言数据类型转换 List Vector Dataframe
- 利用反射,找出某类的所有方法,构造器和全部域名
- 关于安装配置ambari时遇到的问题及解决办法