bitnamigitlabbitnamigitlabova
大家好,感谢邀请,今天来为大家分享一下bitnami的问题,以及和ova的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
本文目录
如何在ubuntu server 14.04下安装gitlab中文版gitlab重新加载报错cp:cannot create regular file 无效参数如何在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”选项可选,因为有的服务器不支持,会提示MPPErequiredbut
peernegotiation
failed,创建时带上“--start”选项可以看到连接的情况。
pptpsetup创建的VPN连接重启后会失效,如果想在不重启的情况下删除VPN连接:
sudopptpsetup--deleteVPN名称
创建VPN连接后还需要使能,并且添加到路由列表:
sudoponVPN名称
sudorouteadd
defaultdevppp0
禁用VPN连接的方法是:
sudo
poffVPN名称
下面开始正文:
1.依赖包
我装的是ubuntuserver
14.04,安装的时候可以选是否安装LAMP(Linux+Apache+MySQL+PHP),如果没装,可以用下面的命令装:
sudotaskselinstall
lamp-server
安装的时候会提示输入MySQL的root密码,下面要用。
接下来是依赖关系:
sudoapt-getinstallflexbisonruby
build-essentialzlib1g-devlibyaml-devlibssl-devlibgdbm-dev
libreadline-devlibncurses5-devlibffi-devcurlopenssh-server
redis-servercheckinstalllibxml2-devlibxslt-dev
libcurl4-openssl-devlibicu-devlogrotatepython-docutils
pkg-configcmakelibkrb5-devnodejsgit-core
注意:这里面装了ruby,应该是1.9.1版本的,gitlab需要2.0以上的ruby,但是安装2.0以上的ruby需要低版本的ruby,所以我们先装上,一会儿卸掉。另外,ubuntu
14.04的软件库里有ruby2.0,但是实测不能用,所以还是从源码装ruby吧。
2.ruby
下载,编译,安装(安装前删掉ruby1.9.1):
curl-L--progress
http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz|tar
xz
cdruby-2.1.5
./configure--prefix=/usr--disable-install-rdoc
make
sudoapt-getautoremoveruby
sudomakeinstall
然后安装bundler:
sudogeminstallbundler--no-ri
--no-rdoc
3.用户创建
为gitlab创建一个git用户:
sudoadduser--disabled-login--gecos
'GitLab'git
4.数据库初始化
官方指南用的是PostgreSQL,不过官方也有MySQL的说明:
http://doc.gitlab.com/ce/install/database_mysql.html
sudoapt-getinstall-ymysql-server
mysql-clientlibmysqlclient-dev
mysql-uroot-p
输入MySQL的root密码登陆,然后:
mysql>CREATEUSER
'git'@'localhost'IDENTIFIEDBY'$password';
记得把上面这句的"$password"换成实际的密码,然后:
mysql>SET
storage_engine=INNODB;
mysql>CREATEDATABASEIFNOT
EXISTS`gitlabhq_production`DEFAULTCHARACTERSET`utf8`COLLATE
`utf8_unicode_ci`;
mysql>GRANTSELECT,INSERT,
UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,LOCKTABLESON
`gitlabhq_production`.*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-Hgit
clonehttps://gitlab.com/larryli/gitlab.git
不知道是因为GFW还是什么,git
clone这个版本库可慢可慢了,我用了VPN,速度会快点。
git
clone完以后可以checkout你想要的版本,在本文编写的时间(2015年4月22日),可以:
sudo-ugit-Hgitcheckout
7-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-Hmkd
ir/home/git/gitlab-satellitessudochmodu+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.example
config/initializers/rack_attack.rb
sudo-ugit-Hgitconfig--globaluser.name"GitLab"
sudo-ugit-Hgitconfig--globaluser.email
"example@example.com"
sudo-ugit-Hgitconfig--globalcore.autocrlfinput
sudo-ugit-Hcpconfig/resque.yml.example
config/resque.yml
当然,你可以把example@example.com改成你的email;上面的那些yml文件里面的配置基本都不用更改;然后,配置数据库用户名和密码:
sudo-ugitcpconfig/database.yml.mysql
config/database.yml
sudo-ugit-Heditorconfig/database.yml
sudo-ugit-Hchmodo-rwx
config/database.yml
然后,安装gems:
sudo-ugit-Hbundleinstall--deployment--without
developmenttestpostgresaws
这一步必须使用VPN,因为万恶的GFW屏蔽了rubygems.org,所以会提示connectionresetby
peer之类的,这部时间也会比较久,如果你的机器是多核的,也可以加上和make相同-jN参数,N等于核数。
(2015年5月2日追加)
发现淘宝做了个rubygrems.org的国内镜像,http://ruby.taobao.org/,可以参照上面的内容设置,加快gems安装速度。
再接下来安装gitlab
shell:
sudo-ugit-Hbundleexecrake
gitlab:shell:install[v2.6.0]
REDIS_URL=unix:/var/run/redis/redis.sockRAILS_ENV=production
sudo-ugit-Heditor
/home/git/gitlab-shell/config.yml
把gitlab的url改成http://localhost/或者你的域名。
在接下来初始化数据库:
sudo-ugit-Hbundleexecrakegitlab:setup
RAILS_ENV=production
加入启动项:
sudocplib/support/init.d/gitlab
/etc/init.d/gitlab
sudoupdate-rc.dgitlabdefaults21
初始化日志:
sudocplib/support/logrotate/gitlab
/etc/logrotate.d/gitlab
检查应用状态:
sudo-ugit-Hbundleexecrakegitlab:env:info
RAILS_ENV=production
编译附件:
sudo-ugit-Hbundleexecrakeassets:precompile
RAILS_ENV=production
启动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.conf
001-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.conf
001-gitlab.conf
另外,还需要使能代理模块以实现反向代理功能,不然会提示“ProxyPassReverse”无效之类的。
cd/etc/apache2/mods-enabled
sudoln-s../mods-available/proxy.conf
proxy.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-Hbundleexecrake
gitlab:checkRAILS_ENV=production
如果都是绿色的结果,那就可以访问了。登陆用户名:root,初始密码:5iveL!fe
最后配置一下邮件,修改/home/git/gitlab/config/gitlab.yml,里面的“email_from:”为一个有效的email地址;修改/home/git/gitlab/config/environments/production.rb,里面的
“config.action_mailer.delivery_method=”为“:smtp”;最后:
cd/home/git/gitlab/config/initializers
sudo-ugit-H
cpsmtp_settings.rb.samplesmtp_settings.rb
然后把文件的里的内容修改正确了,再重启一下gitlab服务就行了:
sudoservicegitlab
restart
最后看看我的部署结果:
gitlab重新加载报错在本版本的gitlab中,在/opt/gitlab*中找不到uninstall文件,无法通过该方法卸载gitlab
经过摸索,可通过以下方法彻底卸载gitlab
sudogitlab-ctlstopsudogitlab-ctluninstallsudogitlab-ctlcleansesudorm-rf/opt/gitlab1234
之后通过reboot命令重启系统即可
其中,可通过sudogitlab-ctlhelp来获取相关命令
sudogitlab-ctluninstall,关于其的说明是
Killallprocessesanduninstalltheprocesssupervisor(datawillbepreserved).
但在实际操作中,只通过uninstall无法彻底卸载gitlab
安装方法
bitnami的下载链接https://bitnami.com/stack/gitlab/installer中只提供了虚拟机版本及云服务器版本,本人没找到.run的安装文件,于是只能通过官方的方法安装。
本人是在amazon的云服务器上进行安装,由于Ram只有1GB,不符合gitlab的最低运行要求,若直接安装,会使得服务器卡顿不堪,难以使用,且gitlab也无法正常运行,进入gitlab的服务网页,会提示
502Whoops,GitLabistakingtoomuchtimetorespond:
无法使用,于是得先配置虚拟内存
另外,在服务器刚启动时,也会返回这个提示,是因为gitlab系统还没跑起来,稍等片刻即可
sudoddif=/dev/zeroof=/swapfilebs=1024count=2048ksudomkswap/swapfi
lesudoswapon/swapfilesudovim/etc/fstab++/swapfilenoneswapdefaults0012345
++后面的内容是添加到fstab文件中的内容
此处配置的虚拟内存(交换文件)是2GB,gitlab最低的运行内存要求是2GB,读者们可以根据自己的硬盘情况和内存情况进行试验
由于新版gitlab占用内存变大,系统默认的在内存占用超过40%时启用swap不太合适,现象就是通过putty连接服务器过慢,打开gitlab的网页过慢等,影响到使用
于是可以把该阈值调整为50%。
方法是修改/etc/sysctl.conf文件
sudovim/etc/sysctl.conf1
找到
vm.swappiness=601
将60,改为50
若找不到,则在文件最后一行添加上即可
vm.swappiness=60的意思是,当内存占用超过40%时启用swap
经测试,在本测试机上若按网上通常说的,把该阈值改为90%,是会出现访问慢的问题,读者需要根据自己的机器情
况进行相关的调整此外,gitlab占用80端口提供网页服务,若需要与其他web服务器同时运行,需要进一步的设置
进入官方安装向导https://about.gitlab.com/downloads/
选择系统平台
根据提示输入终端命令
终端命令如下:
sudoapt-getinstallcurlopenssh-serverca-certificatespostfix
curl-sShttps://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh|sudobashsudoapt-getinstallgitlab-cesudogitlab-ctlreconfigure1234
本人使用amazon的云服务器,下载速度有十几MB/s,无需担心网速的问题,安装过程及其快速,gitlab是使用nginx作Web服务器,其中配置有redis等服务
初次通过网页登录gitlab,选择login,将提示修改初始密码,修改过后,可使用root作为用户名以及刚修改的密码来登录gitlab
配置方法(ubuntu)
域名(ip)配置
cd/etc/gitlabsudovimgitlab.rb
/external_url123
把external_url项修改为自己的域名或者是ip地址
sudopostfixflush#立即发送队列里的所有邮件sudopostqueue-p#显示队列里的邮件列表sudopostsuper-dALLsudopostsuper-dMessageID#删除特定ID的邮件sudopostfixreload#重新加载配置文件echo"Thisisthecontent"|mail-s"MailSubject"target_address
#echo后的双引号内接邮件内容,"MailSubject"双引号内是主题的名称,target_address处填写目的邮箱地址12345678
/var/log/mail.log``/var/log/mail.err里面分别有日志和错误原因,内容复杂,比较难看清楚
配置文件只有一个:/etc/postfix/main.cfg
但其中的内容基本不用改,我改了好像也没什么影响
而对发件人有影响的是/etc/hostname,其中放着本机的名称,修改它可使得测试时的发件人改变
在本机上,若hostname是ip-xxx-xx-xx-xxx,发件人地址则为ubuntu@ip-172-31-20-224.ap-northeast-1.compute.internal,若为其他,则发件人地址为’ubuntu@$hostname’,需要重启才能生效,其中ubuntu是服务器的登录用户名
无论如何,测试邮件都可发送,只是时间长短的问题,可查看邮件队列里的邮件,以及目标邮件的垃圾箱和被拦截邮件列表
cp:cannot create regular
file 无效参数这是由于没有创建文件的权限,有两种解决方法:第一种就是切换到有操作权限的用户;第二种就是改变文件夹的权限设置。拓展:cp指令:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。语法:cp[-abdfilpPrRsuvx][-S<备份字尾字符串>][-V<备份方式>][--help][--spares=<使用时机>][--version][源文件或目录][目标文件或目录][目的目录]
好了,关于bitnami和ova的问题到这里结束啦,希望可以解决您的问题哈!