gitlab配置文件|怎么配置gitlab gitlab

|

1. gitlab 在内网服务器,怎么使用

ubuntu 13/pub/ruby/1/gitlabhq/gitlab-shell/',本地局域网安装的话默认localhost就行/gitlabhq/gitlabhq.git gitlab# 进入 gitlab 目录cd /home/git/gitlab# 切换到 gitlab 的 5.3 分支.sudo -u git -H git checkout 5-3-stablecd /home/git/gitlab# 复制 gitlab 的示例配置文件到指定目录sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml# 如果用的不是本地服务器,更改 localhost 为 gitlab 的服务器域名sudo -u git -H gedit config/gitlab.yml# 确保当前用户对 gitlab 的 log 和 tmp 文件有读写权限.sudo chown -R git log/sudo chown -R git tmp/sudo chmod -R u+rwX log/sudo chmod -R u+rwX tmp/# 创建一个我不认识的目录…汗!sudo -u git -H mkdir /home/git/gitlab-satellites# 再创建两个我不认识的目录…并且确保 当前用户对他有读写权限.sudo -u git -H mkdir tmp/pids/sudo -u git -H mkdir tmp/sockets/sudo chmod -R u+rwX tmp/pids/sudo chmod -R u+rwX tmp/sockets/# 创建公共的上传备份目录,并确保当前用户对其有读写权限.否则备份会失败.sudo -u git -H mkdir public/uploadssudo chmod -R u+rwX public/uploads# 复制示例配置文件到制定目录sudo -u git -H cp config/puma.rb.example config/puma.rb# 找到其中有一行 # workers 2,去掉前面的 # 并将 2 改为 3.sudo -u git -H gedit config/puma.rb# 配置 gitlab 的全局设置.sudo -u git -H git config –global user.name GitLabsudo -u git -H git config –global user.email [email protected]# 复制示例Mysql配置文件到指定目录sudo -u git cp config/database.yml.mysql config/database.yml# 修改里面的 root 为 gitlab, 密码为创建的 gitlab mysql 用户密码sudo gedit config/database.yml# 安装一个我不认识的东西…我没脸翻译了…大哥你还是看原版教程吧cd /home/git/gitlabsudo gem install charlock_holmes –version '0.6.9.4'sudo -u git -H bundle install –deployment –without development test postgressudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=proction# 下载 gitlab 的 开始/停止 脚本,并且加入当前用户的可执行权限.sudo cp lib/support/init.d/gitlab /etc/init.d/gitlabsudo chmod +x /etc/init.d/gitlab# 添加 gitlab 的开机启动sudo update-rc.d gitlab defaults 21# 检查 gitlab 的状态和环境配置是否正确.sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=proction# 启动 gitlabsudo service gitlab start# 或者sudo /etc/init.d/gitlab restart# 再次检查 gitlab 的状态,如果全部绿色,说明 gitlab 配置成功.不知道为什么,我要运行这个命令两次才会全绿sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=proction七. 配置 Nginx# 软件源安装Nginxsudo apt-get install nginx# 复制 gitlab 的示例配置到指定目录sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlabsudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab# 修改配置文件.更改其中的 YOUR_SERVER_FQDN 为你的 gitlab 服务器全称域名或者本机IP地址,修改 listen 为 *:80sudo gedit /etc/nginx/sites-available/gitlab# 重启 nginx 服务器sudo service nginx restart# 打开浏览器输入本机 IP,用下面的用户密码登录既可[email protected]!fe

2. 怎么配置sourcetree和gitlab

第一个是在windows的环境下安装,第二个是在windows或者lunix环境中安装的。两者都可以。安装好git客户端后,我们会发现它有Git GUI和Git Bash及Git CMD这三种,我简单的说一下Git GUI是一个图形工具相当于一个专门管理你代码或者修改代码,具体直观的能看见的这个工具,只不过是英文版的和SourceTree的作用类似,但是好用一些。而Git Bash就是利用Git的命令去一步一步的提交项目到你的github中,我开始就是用的命令去提交代码,遗憾的是提交失败很崩溃,并且命令也有几条记不住,不用怕我们可以用SourceTree界面去提交项目,不再担心那所谓的Git命令了。

3. 如何在 CentOS 上安装 Gitlab

首先安装 EPEL 和编译依赖库$ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm如果你是非 64 位,去上面的网址找到适合你发行版的最新版本的 epel rpm$ yum -y update$ yum -y install gcc gcc-c++ make autoconf libyaml-devel gdbm-devel ncurses-devel openssl-devel zlib-devel readline-devel curl-devel expat-devel gettext-devel tk-devel libxml2-devel libffi-devel libxslt-devel libicu-devel sendmail patch libyaml* pcre-devel sqlite-devel vim安装 Python 2.7+Gitlab 要求 Python 2.5.5+ 以及 Ruby 1.9+系统 Python 默认是 2.6.x,如果你想把 Python 升级到目前比较流行的 2.7.x 就参照下面步骤,否则直接跳过。(Gitlab 目前不支持 Python 3.0)$ mkdir /tmp/gitlab && cd /tmp/gitlab$ curl –progress http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz | tar xvf$ cd Python-2.7.5$ ./configure –prefix=/usr/local$ make && make altinstall安装好之后,需要做两件事情,替换默认 python 的版本至最新版本,$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python因为系统默认 PATH 的寻址路径是 /usr/local/bin最后看下 Python 版本是否是刚刚安装的版本:$ python –version由于 yum 是 python 的一个 mole,所以这块修改可能会引起无法调用 yum 脚本,所以需要修改这个文件 /usr/bin/yum 的第一行为 !#/usr/bin/python2.6安装 Ruby 2.0Ruby 1.9 和 2.0 的特性差别不大,索性升级至最新 2.0 版本即可$ cd /tmp/gitlab$ curl –progress http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz$ cd ruby-2.0.0-p247$ ./configure$ make$ make installruby 2.0 已经内置 gem (v2.0.3),只需要安装 bundler$ gem install bundler若在执行 sudo ruby 或 sudo gem 找不到命令,因为编译的路径配置到了 /usr/local/bin,我们只需要做下软链接到 root 用户可以找到的 $PATH 路径:$ ln -s /usr/local/bin/ruby /usr/bin/ruby$ ln -s /usr/local/bin/gem /usr/bin/gem$ ln -s /usr/local/bin/bundle /usr/bin/bundle安装 Git 和 Gitolite$ yum -y install git-all gitolite安装 Nginx$ yum -y install nginx$ service nginx startnginx 需要从 EPEL 中安装,默认系统没有 nginx 包。安装 Mysql 和 RedisGitlab 要求强制安装 redis 处理一些数据,另外支持 MySQL 和 PostgreSQL,这里主要以 MySQL 为例$ yum -y install mysql mysql-devel mysql-server redis配置 Mysql 和 gitlab 需要的用户和数据库$ service mysqld start$ mysql -u root$ mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';$ mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_proction` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;$ mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_proction`.* TO 'gitlab'@'localhost';$ mysql> \qRedis 使用默认配置即可,直接启动$ service redis start添加 Gitlab 用户$ useradd -c 'GitLab' gitCentOS 的命令没有办法直接禁止用户的访问的参数,需要用下面命令:$ passwd -l git安装 Gitlab-shell使用 root 账户切换到 git 账户下操作,可以比官方教程省去一些麻烦的输入$ su git && cd /home/git$ git clone https://github.com/gitlabhq/gitlab-shell.git$ cd gitlab-shell通过 git tag 查看最新版本并切换之$ git checkout v1.7.1编辑配置文件修改你要设定的域名(domain),比如 http://gitlab.dev/$ vim config.yml完成之后执行安装脚本$ ./bin/install安装 Gitlab$ cd /home/git$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab$ cd /home/git/gitlab通过 git tag 查看最新版本并切换之$ git checkout 6.0.1这里需要配置的东西多一些,这里参考官方的文档,也可以安装我下面的步骤来:$ cd /home/git/gitlab复制配置文件,修改 host 相关的配置项,主要是 domain 要和上面的 http://gitlab.dev$ cp config.yml{.example,}$ vim config/gitlab.yml确认 gitlab 以下目录的权限是否正确$ mkdir tmp/pids/$ mkdir tmp/sockets/$ chown -R git log/$ chown -R git tmp/$ chmod -R u+rwX log/$ chmod -R u+rwX tmp/$ chmod -R u+rwX tmp/pids/$ chmod -R u+rwX tmp/sockets/创建 satellites 目录,这个目录是保存各个用户的仓库$ mkdir /home/git/gitlab-satellites创建 uploads 目录(为什么 gitlab 不在项目中创建呢= =!)$ mkdir public/uploads$ chmod -R u+rwX public/uploads复制 unicorn 配置文件$ cp config/unicorn.rb{.example,}设置 ruby web 容器的参数,比如 2GB RAM 服务器可以设置 3 个 worker。如果系统其他服务占用了 unicorn 的端口,记得改名。$ vim config/unicorn.rb设置一些 git 全局参数$ git config –global user.name "GitLab"$ git config –global user.email "[email protected]"$ git config –global core.autocrlf input配置 gitlab 数据库设置$ cp config/database.yml{.mysql,}$ vim config/database.yml$ chmod o-rwx config/database.yml安装必需的 Ruby Gems$ cd /home/git/gitlab$ [sudo] gem install charlock_holmes –version '0.6.9.4'$ bundle install –deployment –without development test postgres aws初始化数据库数据(执行输入 Yes 继续创建)$ bundle exec rake gitlab:setup RAILS_ENV=proction设置 init 脚本$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab$ sudo chmod +x /etc/init.d/gitlab检查 Gitlab 状态$ bundle exec rake gitlab:env:info RAILS_ENV=proction启动 gitlab 服务$ sudo service gitlab start再起检查,保证所有项目都是绿色$ bundle exec rake gitlab:check RAILS_ENV=proction配置 nginx根据 nginx 的安装路径适当修改下面的路径即可,我们先把 gitlab 提供的配置文件拷贝过去$ sudo mkdir -p /etc/nginx/conf/sites/$ sudo cp lib/support/nginx/gitlab /etc/nginx/conf/sites/gitlab.conf根据 nginx 版本和不同发行版的不同,配置结构可能不同根据你的实际情况加载 gitlab.conf修改 gitlab.conf 的 YOUR_SERVER_FQDN 为上面设置的 domain。最后修改 nginx.conf 或者 default.conf 加载 /etc/nginx/conf/site 下所有 conf 文件http { include /etc/nginx/conf/site/*.conf; server { … }}保存后,重启各个服务$ sudo service nginx reload$ sudo service gitlab restart开始 Gitlab 之旅配置好 hosts 即可访问 gitlab.dev$ echo "127.0.0.1 gitlab.dev" >> /etc/hosts默认的用户名密码:[email protected]5iveL!fe各种坑1. 错误日志报权限错误2013/11/07 00:42:21 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:21 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public//index.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET / HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico/index.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 stat() "/home/git/gitlab/public/favicon.ico.html" failed (13: Permission denied), client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", host: "gitlab.web.lo"2013/11/07 00:42:31 [crit] 15875#0: *2 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 33.33.33.1, server: gitlab.web.lo, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/favicon.ico", host: "gitlab.web.lo"解决方案:$ (sudo) chmod o+x /home/git2. 8080 端口被占用这样主要是因为 nginx 的配置是做 unicorn 的代理转发,实际上 gitlab 是由 unicorn 容器驱动,而在配置里默认绑定的是 8080 端口$ vim /home/git/gitlab/config/unicorn.rb找到 listen "127.0.0.1:8080", :tcp_nopush => true 修改成其他未占用的端口号即可。

4. CentOS系统怎样安装GitLab客户端

环境Requirements软件版本CentOS 6.6 Python 2.6 Ruby 2.1.5 Git 1.7.10+ Redis 2.0+ MySQL GitLab 7-8-stable GitLab Shell v2.6.0 yum源为了提高软件安装速度,将yum源设置为阿里云开源镜像$ cd /etc/yum.repos.d$ wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo必要软件包$ yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel make autoconf automake libtool bison libxml2-devel libxslt-devel libyaml-devel zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker安装Git// 查看当前git版本$ git –version// 如果小于1.7.10则先卸载$ yum remove git// 下载最新的git并安装$ wget -O git-src.zip https://github.com/git/git/archive/master.zip$ unzip git-src.zip$ cd git-src$ make prefix=/usr/local all$ make prefix=/usr/local install$ ln -fs /usr/local/bin/git* /usr/bin/安装Ruby环境$ mkdir /tmp/ruby && cd /tmp/ruby$ curl –progress ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.1.5.tar.gz | tar xz$ cd ruby-2.1.5$ ./configure –disable-install-rdoc$ make && make install$ ln -s /usr/local/bin/ruby /usr/bin/ruby$ ln -s /usr/local/bin/gem /usr/bin/gem$ ln -s /usr/local/bin/bundle /usr/bin/bundle// 设置ruby gem源为淘宝$ gem source -r https://rubygems.org/$ gem source -a http://ruby.taobao.org/$ gem install bundler –no-ri –no-rdoc安装MySQL及初始化GitLab库$ yum install mysql mysql-devel mysql-server -y$ /etc/init.d/mysqld start$ chkconfig mysqld on// 登录mysql创建gitab的帐号和数据库mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_proction` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_proction`.* TO 'gitlab'@'localhost';//测试是否可以用git帐号登录数据库sudo -u git -H mysql -u gitlab -p -D gitlabhq_proction安装Redis$ yum -y install redis$ /etc/init.d/redis start$ chkconfig redis on添加git帐号并允许sudo$ useradd –comment 'GitLab' git$ echo "git ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers安装GitLab$ /home/git$ sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-8-stable gitlab$ cd /home/git/gitlab$ sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml// 编辑git路径, gitlab的host:port$ vim config/gitlab.yml// bin_path: /usr/local/bin/git// host: localhost// port: 80 // 给文件夹添加相应的权限$ chown -R git log/$ chown -R git tmp/$ chmod -R u+rwX log/$ chmod -R u+rwX tmp/// 创建必要的文件夹,以及复制配置文件$ sudo -u git -H mkdir /home/git/gitlab-satellites$ sudo -u git -H mkdir tmp/pids/$ sudo -u git -H mkdir tmp/sockets/$ sudo chmod -R u+rwX tmp/pids/$ sudo chmod -R u+rwX tmp/sockets/$ sudo -u git -H mkdir public/uploads$ sudo chmod -R u+rwX public/uploads$ sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb$ sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb// 配置数据库连接信息$ sudo -u git cp config/database.yml.mysql config/database.yml$ sudo -u git -H vim config/database.yml$ vim config/database.yml// proction:// username: gitlab// password: "gitlab"安装GitLab-Shell$ cd /home/git$ sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v2.6.0$ cd gitlab-shell/$ sudo -u git -H cp config.yml.example config.yml// 编辑配置文件, 设置gitlab_url, redis-cli, log-level…$ vim config.yml// gitlab_url: "http://localhost/"// /usr/bin/redis-cli// 安装git-shell$ sudo -u git -H ./bin/install安装需要ruby的gems$ cd /home/git/gitlab$ sudo -u git -H bundle install –deployment –without development test postgres aws初始化数据库(创建GitLab相关表)$ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=proction安装启动文件以及日志切割文件cp lib/support/init.d/gitlab /etc/init.d/gitlabcp lib/support/init.d/gitlab.default.example /etc/default/gitlabcp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab设置git帐号信息$ sudo -u git -H git config –global user.name "Troy Zhang"$ sudo -u git -H git config –global user.email "[email protected]"$ sudo -u git -H git config –global core.autocrlf input安装Nginx$ yum -y install nginx$ vim /etc/nginx/nginx.confuser root git;worker_processes 2;pid /var/run/nginx.pid;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';# GITLAB# Maintainer: @randx# App Version: 5.0upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;}server { listen *:80 default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com; server_tokens off; # don't show the version number, a security best practice root /home/git/gitlab/public; # Set value of client_max_body_size to at least the value of git.max_size in gitlab.yml client_max_body_size 5m; # indivial nginx logs for this gitlab vhost access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { # serve static files from defined root folder;. # @gitlab is a named location for the upstream fallback, see below try_files $uri $uri/index.html $uri.html @gitlab; } # if a file, which is not found in the root folder is requested, # then the proxy pass the request to the upsteam (gitlab unicorn) location @gitlab { proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://gitlab; }}}更改权限,启动nginx$ nginx -t$ chown -R git:git /var/lib/nginx/$ /etc/init.d/nginx start检测当前环境sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=proction拉取gitlab静态资源文件$ sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=proction启动gitlab$ /etc/init.d/gitlab start检测各个组件是否正常工作$ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=proction

5. Ubuntu 安装gitlab后,css文件不能被加载

:#安装所有的依赖包 sudo apt-get install -y build-essential git-core sudo apt-get install -y zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall

6. 如何在ubuntu server 14.04下安装gitlab中文版

gitlab是基于RubyonRails的,安装和配置非常麻烦,不过有傻瓜安装包,https://about.gitlab.com/downloads/,或者,https://bitnami.com/stack/gitlab/installer。但是这两个包都是英文界面的,gitlab把界面提示写在每一个rb文件里了,所以,要用中文版的不能像redmine那样设定一下就行了。

幸好,还是有无私的大侠把gitlab给汉化了:https://larryli.cn/gitlab,代码地址:https://gitlab.com/larryli/gitlab。

所以本文要做的事情是,不安装傻瓜包,从源码安装gitlab。

gitlab官方有一个说明文档:http://doc.gitlab.com/ce/install/installation.html,本文基本按照这个文档来的。所不同的是,本文用的是apache,不是nginx。

安装步骤有:

1.依赖包

2.ruby

3.用户创建

4.数据库初始化

5.redis

6.gitlab源码

7.apache

本文可能会用到VPN连接,在命令行下创建VPN连接的方法如下:

sudoapt-getinstallpptp-linux

sudopptpsetup–createVPN名称–server服务器地址–username用户名–password密码[–encrypt]–start

以上命令会创建一个设备,如果没有其他的拨号设备,这个设备会是ppp0,用ifconfig可以看到,“–encrypt”选项可选,因为有的服务器不支持,会提示,创建时带上“–start”选项可以看到连接的情况。

pptpsetup创建的VPN连接重启后会失效,如果想在不重启的情况下删除VPN连接:

sudopptpsetup–deleteVPN名称

创建VPN连接后还需要使能,并且添加到路由列表:

sudoponVPN名称

sudorouteadddefaultdevppp0

禁用VPN连接的方法是:

sudopoffVPN名称

下面开始正文:

1.依赖包

我装的是ubuntuserver14.04,安装的时候可以选是否安装LAMP(Linux+Apache+MySQL+PHP),如果没装,可以用下面的命令装:

sudotaskselinstalllamp-server

安装的时候会提示输入MySQL的root密码,下面要用。

接下来是依赖关系:

sudoapt-getinstallflexbisonrubybuild-essentialzlib1g-devlibyaml-devlibssl-devlibgdbm-devlibreadline-devlibncurses5-devlibffi-devcurlopenssh-serverredis-servercheckinstalllibxml2-devlibxslt-devlibcurl4-openssl-devlibicu-devlogrotatepython-docutilspkg-configcmakelibkrb5-devnodejsgit-core

注意:这里面装了ruby,应该是1.9.1版本的,gitlab需要2.0以上的ruby,但是安装2.0以上的ruby需要低版本的ruby,所以我们先装上,一会儿卸掉。另外,ubuntu14.04的软件库里有ruby2.0,但是实测不能用,所以还是从源码装ruby吧。

2.ruby

下载,编译,安装(安装前删掉ruby1.9.1):

curl-L–progresshttp://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz|tarxz

cdruby-2.1.5

./configure–prefix=/usr–disable-install-rdoc

make

sudoapt-getautoremoveruby

sudomakeinstall

然后安装bundler:

sudogeminstallbundler–no-ri–no-rdoc

3.用户创建

为gitlab创建一个git用户:

sudoadser–disabled-login–gecos'GitLab'git

4.数据库初始化

官方指南用的是PostgreSQL,不过官方也有MySQL的说明:

http://doc.gitlab.com/ce/install/database_mysql.html

sudoapt-getinstall-ymysql-servermysql-clientlibmysqlclient-dev

mysql-uroot-p

输入MySQL的root密码登陆,然后:

mysql>CREATEUSER'git'@'localhost'IDENTIFIEDBY'$password';

记得把上面这句的"$password"换成实际的密码,然后:

mysql>SETstorage_engine=INNODB;

mysql>CREATEDATABASEIFNOTEXISTS`gitlabhq_proction`DEFAULTCHARACTERSET`utf8`COLLATE`utf8_unicode_ci`;

mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,LOCKTABLESON`gitlabhq_proction`.*TO'git'@'localhost';

mysql>q

5.Redis

Redis貌似是用来存key的数据库吧,不知道,反正按步骤安装:

sudoapt-getinstallredis-server

sudocp/etc/redis/redis.conf/etc/redis/redis.conf.orig

sed's/^port.*/port0/'/etc/redis/redis.conf.orig|sudotee/etc/redis/redis.conf

echo'unixsocket/var/run/redis/redis.sock'|sudotee-a/etc/redis/redis.conf

echo'unixsocketperm770'|sudotee-a/etc/redis/redis.conf

sudoserviceredis-serverrestart

sudousermod-aGredisgit

6.gitlab源码

gitlab源码默认是安装在/home/git/gitlab,如果要更改,请参照官方手册。获取中文版源码的过程如下:

cd/home/git

sudo-ugit-Hgitclonehttps://gitlab.com/larryli/gitlab.git

不知道是因为GFW还是什么,gitclone这个版本库可慢可慢了,我用了VPN,速度会快点。

gitclone完以后可以checkout你想要的版本,在本文编写的时间(2015年4月22日),可以:

sudo-ugit-Hgitcheckout7-7-zh

然后配置源码

cd/home/git/gitlab

sudo-ugit-Hcpconfig/gitlab.yml.exampleconfig/gitlab.yml

sudochown-Rgitlog/

sudochown-Rgittmp/

sudochmod-Ru+rwX,go-wlog/

sudochmod-Ru+rwXtmp/

sudo-ugit-Hmkdir/home/git/gitlab-satellites

sudochmo+rwx,g=rx,o-rwx/home/git/gitlab-satellites

sudochmod-Ru+rwXtmp/pids/

sudochmod-Ru+rwXtmp/sockets/

sudochmod-Ru+rwXpublic/uploads

sudo-ugit-Hcpconfig/unicorn.rb.exampleconfig/unicorn.rb

sudo-ugit-Hcpconfig/initializers/rack_attack.rb.exampleconfig/initializers/rack_attack.rb

sudo-ugit-Hgitconfig–globaluser.name"GitLab"

sudo-ugit-Hgitconfig–globaluser.email"[email protected]"

sudo-ugit-Hgitconfig–globalcore.autocrlfinput

sudo-ugit-Hcpconfig/resque.yml.exampleconfig/resque.yml

当然,你可以把[email protected]改成你的email;上面的那些yml文件里面的配置基本都不用更改;然后,配置数据库用户名和密码:

sudo-ugitcpconfig/database.yml.mysqlconfig/database.yml

sudo-ugit-Heditorconfig/database.yml

sudo-ugit-Hchmodo-rwxconfig/database.yml

然后,安装gems:

sudo-ugit-Hbundleinstall–deployment–

这一步必须使用VPN,因为万恶的GFW屏蔽了rubygems.org,所以会提示connectionresetbypeer之类的,这部时间也会比较久,如果你的机器是多核的,也可以加上和make相同-jN参数,N等于核数。

(2015年5月2日追加)

发现淘宝做了个rubygrems.org的国内镜像,http://ruby.taobao.org/,可以参照上面的内容设置,加快gems安装速度。

再接下来安装gitlabshell:

sudo-ugit-Hbundleexecrakegitlab:shell:install[v2.6.0]REDIS_URL=unix:/var/run/redis/redis.sockRAILS_ENV=proction

sudo-ugit-Heditor/home/git/gitlab-shell/config.yml

把gitlab的url改成http://localhost/或者你的域名。

在接下来初始化数据库:

sudo-ugit-Hbundleexecrakegitlab:setupRAILS_ENV=proction

加入启动项:

sudocplib/support/init.d/gitlab/etc/init.d/gitlab

sudoupdate-rc.dgitlabdefaults21

初始化日志:

sudocplib/support/logrotate/gitlab/etc/logrotate.d/gitlab

检查应用状态:

sudo-ugit-Hbundleexecrakegitlab:env:infoRAILS_ENV=proction

编译附件:

sudo-ugit-Hbundleexecrakeassets:precompileRAILS_ENV=proction

启动gitlab服务:

sudoservicegitlabstart

7.apache

下载apache的配置文件:https://gitlab.com/gitlab-org/gitlab-recipes/blob/master/web-server/apache/gitlab-apache2.4.conf

将其中的“ProxyPassReverse

http://gitlab.example.com/”改成“ProxyPassReverse

http://localhost/”或者你的域名,将其中的“/var/log/httpd/logs/”改为“/var/log/apache2/”。

用命令来说:

wgethttps://gitlab.com/gitlab-org/gitlab-recipes/raw/master/web-server/apache/gitlab-apache2.4.conf

mvgitlab-apache2.4.conf001-gitlab.conf

editor001-gitlab.conf(进行上述修改)

sudocp001-gitlab.conf/etc/apache2/sites-available

cd/etc/apache2/sites-enabled

sudorm000-default.conf

sudoln-s../sites-available/001-gitlab.conf001-gitlab.conf

另外,还需要使能代理模块以实现反向代理功能,不然会提示“ProxyPassReverse”无效之类的。

cd/etc/apache2/mods-enabled

sudoln-s../mods-available/proxy.confproxy.conf

sudoln-s../mods-available/proxy.loadproxy.load

sudoln-s../mods-available/proxy_connect.loadproxy_connect.load

sudoln-s../mods-available/proxy_http.loadproxy_http.load

sudoln-s../mods-available/rewrite.loadrewrite.load

重启apache:

sudoserviceapache2restart

然后,检查下配置是否正确:

sudo-ugit-Hbundleexecrakegitlab:checkRAILS_ENV=proction

如果都是绿色的结果,那就可以访问了。登陆用户名:root,初始密码:5iveL!fe

最后配置一下邮件,修改/home/git/gitlab/config/gitlab.yml,里面的“email_from:”为一个有效的email地址;修改/home/git/gitlab/config/environments/proction.rb,里面的“config.action_mailer.delivery_method=”为“:smtp”;最后:

cd/home/git/gitlab/config/initializers

sudo-ugit-Hcpsmtp_settings.rb.samplesmtp_settings.rb

然后把文件的里的内容修改正确了,再重启一下gitlab服务就行了:

sudoservicegitlabrestart

7. 如何清空gitlab服务器的配置文件

方法/步骤1、登陆github到个人主页,点击“Repositories”,就能看到你自己创建或者“Fork”的项目。2、找到你要删除的“Repositories”(或者也可以说是项目),点击进入。3、找到该Repositories页面右下方的“Settings”,如图中标示,点击“Settings”进入(这个时候有可能会提示让你输入密码)。4、进到“Settings”之后,点选左边框中的“Options”(一般默认也是这个选项),然后拉到最下,就可以看到“Delete this repository”了。5、点击“Delete this repository”,弹出对话框,需要你填写要删除的这个“Repositories”名字,不填写的话是不能删除的,我这里的名字是“Test”,然后就可以删除整个项目了。

8. 怎么配置gitlab gitlab

GitLab是由Ruby语言开发的基于Linux的Git服务器,是我见过的最强大的Git服务器。发现它之后,立即决定将Git服务器换成GitLab。但安装好GitLab之后面临一个问题,如何将服务器上的git项目直接导入到GitLab,之前的Git服务器是由是git+apache搭建的(详见在Linux上用Apache搭建Git服务器)。在网上发现了这篇文档——Import bare repositories into your GitLab instance,并按之进行了操作。1)设置存放代码库的主目录vi /etc/gitlab/gitlab.rb比如这里设置为:git_data_dir "/gitlab/repos"2)访问刚搭建的GitLab站点,创建一个group,比如cnblogs。这时会在 /gitlab/repos 下创建 /gitlab/repos/repositories/cnblogs 文件夹。然后在/gitlab/repos/repositories/创建一个文件夹,比如cnblogs3)将现有的所有git项目文件复制到这个文件夹cp -r /data/git/* /gitlab/repos/repositories/cnblogs4)修改一下复制过来的文件夹的所有者:chown -R git:git /gitlab/repos/repositories/cnblogs5)运行GitLab导入命令cd /var/opt/gitlabgitlab-rake gitlab:import:repos等了一段时间之后,显示done,却一个项目也没导入进来。经研究发现,在导入时,GitLab只认文件夹名以.git结尾的项目。于是,将要导入的项目文件夹名称加上.git后缀,再次进行导入。结果显示导入成功,比如:Processing cnblogs/CNBlogsJob.git * Created CNBlogsJob (cnblogs/CNBlogsJob.git)Done!可以是GitLab站点上却看不到已导入的项目。多次努力,也没能解决这个问题。后来,实在没办法,改为手动导入,导入方法如下:1)在GitLab站点上创建与要导入的项目同名的项目。2)进入刚创建的项目文件夹cd /gitlab/repos/repositories/cnblogs/项目名称.git3)删除该文件下的所有文件rm -rf *4)将要导入的项目文件夹下的所有文件复制过来cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git就这样将项目一个一个地导入进来。5)导入完成后,修改一下导入的所有项目的文件所有者chown -R git:git /gitlab/repos/repositories/cnblogs如果不修改所有者,客户端无法进行git push。就这样手动地完成了现有Git项目的导入。备注:操作系统是CentOS 6.2,GitLab版本是7.8.4。

9. macosx下,搭建gitlab的配置问题,请大牛们帮忙看看什么问题

方案一基于SSH直接搭建Git支持的协议主要是四种:本地:需要文件共享系统,权限不好控制HTTP:速度慢SSH:同时支持读写操作,不支持匿名的读取(Git默认协议)GIT:最快从搭建的难易程度和特点综合筛选,最合适的还是ssh,并且大部分服务器上基本都有ssh服务,所以省去了不少麻烦。一个最基本的思路是给每一个人一个ssh帐号,这样大家就可以通过用户名和口令来访问了,但是显然这不是一个好的选择,这个做法有些多余,并且对于repo的权限很难管理。在使用Github的时候,会利用rsa.pub公钥/私钥的方式,这样在服务端拥有用户的公钥(*.pub)之后就可以,跨过繁琐的口令,直接认证提交了,而服务端也会根据不同的用户身份,对其权限有着更加灵活的管理。因此也采用这种方式。服务端为了使远程库访问更加直观,先在服务器上创建一个名为git的账户,这样以后clone的时候就如下面的格式了:[email protected]:some.git创建新的用户,创建repo等目录$sudoadsergit$sugit$cd~$mkdirrepos在HOME下的.ssh目录,如果没有则创建,创建一个authorized_keys文件,这个文件就是用来管理所有git用户的公钥的,也就是这里面的用户对于项目有着R+W的权限。客户端对于每一个客户端,需要生成一对密钥和公钥,如果是Github用户,那么.ssh目录下,一定有id_rsa.pub和id_rsa两个文件,其中第一个是系统生成的公钥,另一个是自己要保存好的密钥。如果没有的话,可以在终端执行:ssh-keygen来生成,完成后,将自己的公钥提交给管理员,这就是一个注册的行为。完成最后一步,管理员将团队成员的公钥添加到authorized_keys中,比如将同学susie加入:$catsusie.pub>>authorized_keys至此,大家可以通过[email protected]:repos/some.git来访问公共的版本库了。问题安全问题,成员可以登录git用户的shell,细节权限如分支等不好控制管理麻烦,新建repo,或者增加成员比较麻烦,尤其是修改的时候方案二使用Gitolite服务Gitolite也是基于SSH协议构建的方便管理gitrepo的应用,可以通过其源码安装.安装安装按照官方给定的文档就可以轻易的实现:$gitclonegit://github.com/sitaramc/gitolite$mkdir-p$HOME/bin$gitolite/install-to$HOME/bin$gitolitesetup-pkYourName.pub如果执行最后一条命令的时候,gitolite不识别,则可以通过下面两种方式解决:将gitolite添加到PATH里面通过$HOME/bin/gitolitesetup-pkYourName.pub执行至此,gitolite在服务端,搭建完毕,会发现此时HOME目录下增加了一个文件projects.list和一个目录repositories,后者就是我们的版本仓库了,每当新建repo的时候,就会在其中创建。使用是时候说一下gitolite的管理模式了,他会创建一个gitolite-admin的repo,管理员就是通过像这个repo提交配置文件而实现对git服务器的控制的。首先,将这个repo导入到我们的workspace:在此之前,需要配置本地的ssh,gitolite要求管理员的本地密钥和其注册公钥的名字一致,比如安装的时候指定-pk后面为admin.pub则管理员本地需要由admin对应的私钥。我们可以通过~/.ssh/config来进行配置(注:有些系统可以用conf,MacOSX下无效,只能用config)..comport22identityfile~/.ssh/admin这样,当访问gitolite的时候就会自动根据配置文件执行,配置完成后可以根据下面的命令,将gitolite-admin转移到本地。gitclonegitolite:gitolite-admin.git克隆完成后,可以发现,gitolite-admin下面有两个目录,其中conf保存配置文件,可以通过编辑里面的gitolite.conf文件,管理git服务器,keydir目录保存用户的公钥pub文件。当讲修改后的repo提交的时候,gitolite就会自动的应用这些配置,管理过程就方便了很多。配置规则打开gitolite.conf文件可以看到其中的示例:Toaddnewusersalice,bob,andcarol,'keydir'asalice.pub,bob.pub,andcarol.pubrespectively.Toaddanewrepo'foo',editthefile'conf/gitolite.conf'andaddlineslikethis:repofooRW+=aliceRW=bobR=carol上面的配置文件就是新建了一个repofoo,并且添加了三位项目成员,每一个人的权限不同。提交push后,管理便生效了。可视化可能会需要一个web界面来管理这些项目,目前知道的有三种方式:git源码中自带的组件,cgi脚本实现,使用gitolite服务gitlab开源框架,基于ROR,新版本不再使用gitolite服务FB开源PHP框架phabricator,功能高端上档次

10. gitlab 怎么修改单个文件大小

gitlab默认上传文件最大10M,如果大于10M,则需要做如下修改:vim app/models/note.rb找到如下行:validates :attachment, file_size: { maximum: 10.megabytes.to_i }将10改为你想要的大小;如果httpserver使用提nginx,则修改配置文件nginx.conf,在http中加入 client_max_body_size 50m, 这个值默认是1M。此外,如果用eclipse的插件上传,报如下错:Can't connect to any repository: http://10.210.92.69/bcop/bcop_si.git (An internal Exception occurred ring push: http://10.210.92.69/bcop/bcop_si.git: 411 Length Required)做如下修改:Eclipse>Preferences>Team>Git>Configuration>Add EntryEnter http.postBuffer as key and 524288000 as value (if 500M is enough)


赞 (0)