Linux学习笔记31——linux本地yum源方式安装gitlab

联网环境下安装gitlab还是很轻松的,但是生产环境往往不能联网,为了部署个gitlab还得花点力气!

本文采取的是,先制作本地yum源,然后再通过自定义yum源将gitlab-ce纳入yum源的方式,再通过yum install进行安装

一、本地yum源制作

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

1,YUM的作用

在Linux上使用源码的方式安装软件非常满分,使用yum可以简化安装的过程

2,YUM的常用命令

安装httpd并确认安装

yum instll -y httpd,

列出所有可用的package和package组

yum list

清除所有缓冲数据

yum clean all

列出一个包所有依赖的包

yum deplist httpd

删除httpd

yum remove httpd

3,制作本地YUM源

YUM源虽然可以简化我们在Linux上安装软件的过程,但是生成环境通常无法上网,不能连接外网的YUM源,说以接就无法使用yum命令安装软件了。为了在内网中也可以使用yum安装相关的软件,就要配置yum源。

YUM源的原理

YUM源其实就是一个保存了多个RPM包的服务器,可以通过http的方式来检索、下载并安装相关的RPM包

1,准备一台Linux服务器,用最简单的版本CentOS-6.7-x86_64-minimal.iso   (其他的iso包也可以,和本机linux版本相匹配)

,2,配置好这台服务器的IP地址

,3,上传CentOS-6.7-x86_64-bin-DVD1.iso到服务器

这里说明下,要上传文件,可以通过sftp,默认情况下,SFTP 协议采用和 SSH 传输协议一样的方式建立到远程服务器的安全连接。

再secureCRT中用ALT+P,调出SFTP,然后用pwd 和 cd 找到需要下载到的位置,再将iso拖动过来即可。生成如下命令:

put -r "D:\software\rhel-server-6.5-x86_64-dvd.iso"

4,将CentOS-6.7-x86_64-bin-DVD1.iso镜像挂载到某个目录

mkdir /var/iso

mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /var/iso

-o 是mount命令的一个参数,Options的首字母,后面跟着mount选项喽

loop:用来把一个文件当成硬盘分区mount到目录

ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集

在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device)或者也可以说是仿真设备。它能使我们像块设备一样访问一个文件。
在使用之前,一个 loop 设备必须要和一个文件进行连接
。这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来。

5,修改本机上的YUM源配置文件,将源指向自己

备份原有的YUM源的配置文件

cd /etc/yum.repos.d/

rename .repo .repo.bak *

vi CentOS-Local.repo

[base]

name=CentOS-Local

baseurl=file:///var/iso

gpgcheck=1

enabled=1   #很重要,1才启用

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

添加上面内容保存退出,这里我没有填写gpgkey,也是可以的

6,清除YUM缓冲

yum clean all

7,列出可用的YUM源

yum repolist

我还喜欢用 yum list 看下能安装哪些东西

不过博主用的主机是redhat enterprise 6.8的,到了这一步直接报了错~~

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Repository 'redhat-6.8': Error parsing config: Error parsing "enabled = '1\xc2\xa0\xc2\xa0'": invalid boolean value

第一句话是说:这个系统还没有再红帽订阅管理里面注册(红帽企业版的要收费!)。你能够用订阅管理来注册!

第二句话,注意哦,特指 redhat-6.8 这个仓库文件里面存在格式问题。读取"enabled = '1\xc2\xa0\xc2\xa0'": 这一段存在转换问题,有无效的布尔值。查的网上结论是注释的问题。

8,安装相应的软件

yum install -y httpd

9.开启httpd使用浏览器访问http://192.168.0.100:80(如果访问不通,检查防火墙是否开启了80端口或关闭防火墙)

service httpd start

10.将YUM源配置到httpd(Apache Server)中,其他的服务器即可通过网络访问这个内网中的YUM源了

cp -r /var/iso/ /var/www/html/CentOS-6.7

11.取消先前挂载的镜像

umount /var/iso

12.在浏览器中访问http://192.168.0.100/CentOS-6.7/

 

13,让其他需要安装RPM包的服务器指向这个YUM源,准备一台新的服务器,备份或删除原有的YUM源配置文件

cd /etc/yum.repos.d/

rename .repo .repo.bak *

vi CentOS-Local.repo

[base]

name=CentOS-Local

baseurl=http://192.168.0.100/CentOS-6.7

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

添加上面内容保存退出

 

14,在这台新的服务器上执行YUM的命令

yum clean all

yum repolist

 

15,安装相应的软件

yum install -y gcc

 

16,加入依赖包到私有yumrepository

进入到repo目录

执行命令:  createrepo  .

 

二,自定义YUM源

上面的办法实际上是处理类似于iso文件的办法,如果想要安装任意的rpm文件,则要采取以下的办法:

 

[root@min-base yum.repos.d]# yum -y install createrepo

准备rpm包

(需要自己确定依赖包)、目录。我这里用gitlab-ce-10.0.0-ce.0.el6.x86_64.rpm 直接做演示

[root@min-base ~]# mkdir -p /yum/yum-custom/packages
[root@min-base ~]# cp gitlab-ce-10.0.0-ce.0.el6.x86_64.rpm /yum/yum-custom/packages/

创建repo

[root@min-base ~]# createrepo -u -d  /yum/yum-custom/
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@min-base ~]# ll /yum/yum-custom/
总用量 8
drwxr-xr-x 2 root root 4096 1月   7 20:21 packages
drwxr-xr-x 2 root root 4096 1月   7 20:22 repodata
[root@min-base ~]# 

三、局域网YUM源

局域网YUM源可以配成:本地YUM源 + FTP服务器

这里使用自定义源yum-custom(见上面) + VSFTP演示。

 

下载vsftpd

[root@min-base ~]# yum -y install vsftpd

 

配置vsftpd

编辑vsftp.conf

[root@min-base ~]# vi /etc/vsftpd/vsftpd.conf

并增加匿名用户root目录(默认已经启用匿名访问)

anon_root=/yum/

注意目录权限如下

[root@min-base ~]# ll -a /yum/
total 8
drwxr-xr-x.  4 root root   37 Dec 20 07:37 .
dr-xr-xr-x. 18 root root 4096 Dec 20 06:32 ..
drwxr-xr-x.  4 root root   36 Dec 20 07:08 yum-custom
dr-xr-xr-x.  8 root root 4096 Dec 10  2015 yum-iso

 

 关闭selinux

临时

[root@min-base ~]# setenforce 0

或者,永久:

编辑config

[root@min-base ~]# vi /etc/selinux/config

设置

SELINUX=disabled

重启

[root@min-base ~]# reboot

 

启用vsftp

[root@min-base ~]# systemctl start vsftpd
[root@min-base ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@min-base ~]# 

 

局域网使用

局域网另外一台机器min-client,

 

配置repo

编辑repo

[root@min-client ~]# vim /etc/yum.repos.d/CentOS-Media.repo

内容如下

[c7-media]
name=CentOS-$releasever - Media
baseurl=ftp://192.168.118.133/yum-custom
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

其中192.168.118.133为上面vsftp服务器地址

 

启用这个局域网的repo

[root@min-client ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: c7-media
Cleaning up everything
[root@min-client ~]# yum makecache
Loaded plugins: fastestmirror
c7-media                                                                                                         | 3.0 kB  00:00
(1/3): c7-media/filelists_db                                                                                     |  880 B  00:00
(2/3): c7-media/other_db                                                                                         | 1.3 kB  00:00
(3/3): c7-media/primary_db                                                                                       | 1.8 kB  00:00
Determining fastest mirrors
Metadata Cache Created
[root@min-client ~]# 

 

使用

 

[root@min-base ~]# yum -y install tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

 

目前差不多这些就够用了。以后有时间把163的YUM源爬下来,当本地源用。

四、rpm安装gitlab

由于yum源的问题,rpm方式安装gitlab我也进行了尝试。

先来个下载官网:

https://packages.gitlab.com/gitlab/gitlab-ce/

当时就想着版本的话选稍微老一点的,毕竟公司的虚机也就6.8

因此我选了10.08这个版本

这里有个问题,以后再来探讨:怎么选软件的版本?

1,下载rpm版gitlab  

下载 gitlab-ce-10.8.0-ce.0.el6.x86_64.rpm

注意el6指的是 redhat 6版本,el7就是7版本咯

EL是Red Hat Enterprise Linux的简写 
- EL6软件包用于在Red Hat 6.x, CentOS 6.x, and CloudLinux 6.x进行安装 
- EL5软件包用于在Red Hat 5.x, CentOS 5.x, CloudLinux 5.x的安装 
- EL7 软件包用于在Red Hat 7.x, CentOS 7.x, and CloudLinux 7.x的安装

rpm -ivh  gitlab-ce-10.8.0-ce.0.el6.x86_64.rpm   安装

选项与参数:

-i :install 的意思

-v :察看更细部的安装信息画面

-h :以安装信息列显示安装进度

安装完之后再/opt/gitlab可以看到gitlab的目录。

ls后的目录结构:

bin                       etc      LICENSES  var
dependency_licenses.json  init     service   version-manifest.json
embedded                  LICENSE  sv        version-manifest.txt

2,启动gitlab服务

有一点奇怪的地方,gitlab-ctl 命令没有注册成全局变量,不能直接启动。

我是在bin目录下采用 ./gitlab-ctl   启动相关服务

后来重新安装:rpm -e之后再安装就可以了!

 

 

 

你可能感兴趣的:(linux,git,gitlab)