linux下制作软件包安装服务器

linux下的软件包在有网络的情况下比较好安装,在ubuntu下,更新sourcelist,然后使用apt-get就可以很方便的安装包,在centos下面,更新yum列表,然后使用yum也可以进行方便的软件安装,但是在没有网络的情况下就比较难安装,可以用一个个包的安装的方式去安装,这个在少量的包的情况下比较好处理,在多的情况下就比较麻烦了,本篇文档,就是介绍了在无网的情况下,根据自己的需要制作内网的包的安装服务器

centos系列

使用光驱作为安装源

1、将光驱挂载到服务器的本地目录

1
2
[root@node1 ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only

2、修改本地的yum源文件,将源指向光驱挂载的目录

1
vim /etc/yum.repos.d/myiso.repo
1
2
3
4
5
6
7
添加
[myiso]
name=myiso
baseurl=file:///mnt
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3、更新本地的源缓存

1
2
3
4
5
6
7
8
[root@node1 yum.repos.d]# yum makecache
Loaded plugins: security
myiso | 3.6 kB 00:00 ...
myiso/group_gz | 17 kB 00:00 ...
myiso/filelists_db | 3.4 MB 00:00 ...
myiso/primary_db | 6.8 MB 00:00 ...
myiso/other_db | 2.3 MB 00:00 ...
Metadata Cache Created

做完上面的就可以使用本地的光驱的中的包使用yum安装了

使用iso文件作为安装源

1、将iso文件拷贝到服务器,然后挂载到服务器本地

1
2
[root@node1 ~]# mount -t iso9660 OracleLinux-R6-U5-Server-x86_64-dvd.\[V41362-01\].iso /mnt -o loop
mount: /root/OracleLinux-R6-U5-Server-x86_64-dvd.[V41362-01].iso is write-protected, mounting read-only

2、修改本地的yum源文件,将源指向光驱挂载的目录

1
2
3
4
5
6
7
8
vim /etc/yum.repos.d/myiso.repo
添加
[myiso]
name=myiso
baseurl=file:///mnt
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

3、更新本地的源缓存

1
2
3
4
5
6
7
8
[root@node1 yum.repos.d]# yum makecache
Loaded plugins: security
myiso | 3.6 kB 00:00 ...
myiso/group_gz | 17 kB 00:00 ...
myiso/filelists_db | 3.4 MB 00:00 ...
myiso/primary_db | 6.8 MB 00:00 ...
myiso/other_db | 2.3 MB 00:00 ...
Metadata Cache Created

做完上面的就可以使用本地的iso中的包使用yum安装了

使用安装包做一个ftp的yum安装服务器

1、安装vsftpd服务器

1
rpm -ivh vsftpd-2.2.2-11.el6_4.1.x86_64.rpm 

这个包在操作iso中的包路径下面有

2、配置ftp服务器
默认的ftp目录为/var/ftp/pub/

1
2
3
4
创建源目录
mkdir /var/ftp/pub/centos
将iso挂载到源目录,也可以直接将文件拷贝到这个目录当中去
mount -t iso9660 OracleLinux-R6-U5-Server-x86_64-dvd.\[V41362-01\].iso /var/ftp/pub/centos/ -o loop

配置完成后,镜像的下载地址就为:

1
ftp://youripaddress/pub/centos/

我的为:

1
ftp://172.16.81.129/pub/centos/

3、使用的机器的配置
修改yum源

1
2
3
4
5
6
vim /etc/yum.repos.d/ftpcentos.repo
添加
[ftpcentos]
name=ftpcentos
baseurl=ftp://172.16.81.129/pub/centos/
enabled=1

4、更新yum的缓存

1
2
3
4
5
6
7
8
[root@node2 yum.repos.d]# yum makecache
Loaded plugins: security
ftpcentos | 3.7 kB 00:00
ftpcentos/filelists_db | 3.3 MB 00:00
ftpcentos/primary_db | 3.0 MB 00:00
ftpcentos/other_db | 1.3 MB 00:00
ftpcentos/group_gz | 203 kB 00:00
Metadata Cache Created

制作自己的定制源

1、安装制作源的工具

1
2
3
rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
rpm -ivh createrepo-0.9.9-18.0.1.el6.noarch.rpm

这三个包在默认的iso当中有

2、将安装包拷贝到指定的目录

本例子使用leveldb,snappy举例,snappy是leveldb的依赖包。

1
2
leveldb-1.7.0-2.el6.x86_64.rpm
snappy-1.0.5-1.el6.x86_64.rpm

拷贝到
/usr/src/myepel/目录当中去

1
2
3
4
5
6
7
8
9
10
[root@node1 src]# createrepo myepel/
Spawning worker 0 with 2 pkgs
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

检查目录下面会生成repodata,存储一些元数据信息

1
2
3
4
5
[root@node1 src]# ll myepel/
total 200
-rw-r--r-- 1 root root 162052 Apr 16 08:45 leveldb-1.7.0-2.el6.x86_64.rpm
drwxr-xr-x 2 root root 4096 Apr 16 08:48 repodata
-rw-r--r-- 1 root root 34372 Apr 16 08:45 snappy-1.0.5-1.el6.x86_64.rpm

3、修改源列表

同样的将yum源的目录指向这个myepel/

1
2
3
4
5
[myiso]
name=myiso
baseurl=file:///usr/src/myepel/
gpgcheck=0
enabled=1

4、更新yum缓存

1
2
[root@node1 yum.repos.d]# yum makecache
[root@node1 yum.repos.d]# yum install leveldb

即可安装了