[root@devops-gitlab-vpc embedded]# cd /opt/gitlab/embedded/lib/ruby/include
-bash: cd: /opt/gitlab/embedded/lib/ruby/include: No such file or directory
[root@devops-gitlab-vpc embedded]# cd /opt/gitlab/embedded/lib/ruby/
[root@devops-gitlab-vpc ruby]# ll
total 12
drwxr-xr-x 31 root root 4096 Aug 12 12:18 2.3.0
drwxr-xr-x 3 root root 4096 Aug 12 12:19 gems
drwxr-xr-x 3 root root 4096 Jul 26 2018 site_ruby
# complie ruby 2.3.0
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
tar -zxvf ruby-2.3.0.tar.gz
cd ruby-2.3.0
./configure
cp -ra include /opt/gitlab/embedded/lib/ruby
cp -ra .ext/include/x86_64-linux /opt/gitlab/embedded/lib/ruby/include/ruby/
# Error: /opt/gitlab/embedded/lib/ruby/include/ruby/ruby.h:24:25: fatal error: ruby/config.h: No such file or directory
cd /opt/gitlab/embedded/lib/ruby/include/
cp ruby/x86_64-linux/ruby/config.h ruby/
# Error: make: *** No rule to make target `/include/x86_64-linux/ruby/config.h', needed by `client.o'. Stop.
mkdir -p /include/x86_64-linux/ruby/
cp /opt/gitlab/embedded/lib/ruby/include/ruby/config.h /include/x86_64-linux/ruby/
最后在安装0.4.10
/opt/gitlab/embedded/bin/gem install mysql2 -v 0.4.10
# Error: LoadError: cannot load such file -- peek-mysql2
/opt/gitlab/embedded/bin/gem install peek-mysql2 -v 1.1.0
vim /opt/gitlab/embedded/service/gitlab-rails/Gemfile
gem 'peek-mysql2', '~> 1.1.0', group: :mysql -> gem 'peek-mysql2', '~> 1.1.0'
再次 gitlab-ctl reconfigure
报错信息:
ERROR: Encountered unsupported config key ‘gitlab_git_http_server’ in /etc/gitlab/gitlab.rb.
gitlab_git_http_server[‘repo_root’] = “xxx” → gitlab_workhorse[‘repo_root’] = “xxx”
Error: Mysql2::Error: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation ‘=’: INSERT INTO user_synced_attributes_metadata (user_id, provider, email_synced)
报错分析:
user_synced_attributes_metadata 采用默认字符集和字符集排序 utf8 和 utf8_general_ci (show variables like ‘%collation%’;)
users 表和很多字段都是 utf8_unicode_ci 字符集排序,
解决方案:
根据上面的报错修复 email_provider 字符集排序。
mysql> alter table users modify email_provider varchar(255) COLLATE utf8_general_ci DEFAULT NULL;
Query OK, 115 rows affected (0.06 sec) Records: 115 Duplicates: 0 Warnings: 0
然后有问题,就把 users 表整个字符集都修改了
mysql> alter table users convert to character set utf8 collate utf8_general_ci ;
最后还是存在字符集排序的问题,修改整个数据库中不是 utf8_general_ci 的所有表 字符集排序
compiling statement.c
linking shared-object mysql2/mysql2.so
/bin/ld: unrecognized option '--compress-debug-sections=zlib'
/bin/ld: use the --help option for usage information
collect2: error: ld returned 1 exit status
make: *** [mysql2.so] Error 1
排查ld依赖
[root@devops-gitlab-vpc ruby-2.5.0]# ld --help |grep compress
[root@devops-gitlab-vpc ruby-2.5.0]# ld -v
GNU ld version 2.25.1-32.base.el7_4.1
[root@devops-gitlab-vpc ~]# ld -v
GNU ld version 2.27-44.base.el7
注意:
1、提示无 xxx 包的时候:
1、建议采用 /opt/gitlab/embedded/bin/gem install xxxx -v x.y.z 安装
2、至于 x.y.z 应该是多少,建议先从 Gemfile.lock 中获取
grep xxx /opt/gitlab/embedded/service/gitlab-rails/Gemfile.lock
2、过程中需要不同版本的ruby相关头文件
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz
这里在不同的版本安装的时候,清理之前版本的,重新copy最新版本
3、批量更新表字符集排序
4、Gemfile 文件中mysql2 和 peek-mysql2 的配置都不带后续的group
gem ‘peek-mysql2’, ‘~> 1.1.0’, group: :mysql -> gem ‘peek-mysql2’, ‘~> 1.1.0’
报错信息:
Mysql2::Error: Incorrect string value: ‘\xF0\x9F\x94\xA8\xE6\x89…’ for column ‘commit_title’ at row 1: INSERT INTO push_event_payloads
(event_id
, commit_count
, ref_type
, action
, commit_from
, commit_to
, ref
, commit_title
) VALUES (259421, 1, 0, 2, x’a2ad3a918aa4d9aac226c430b365bb5cb05f5619’, x’1041d9cdfaed711af45455b65497284194aed02c’, ‘dev_test1’, ‘1,修改🔨手机空布局不居中问题。’)
Fix:
alter table push_event_payloads change commit_title commit_title varchar(70) character set utf8mb4 collate utf8mb4_general_ci ;
报错信息:
Error: gitlab-ctl reconfigure 过程中如果卡主不动
解决方案:
systemctl restart gitlab-runsvdir
欢迎关注个人公众号 DailyJobOps原文地址:Gitlab整理汇总(安装、非22端口克隆、升级及遇到问题、备份恢复) 1、安装如果不采用自建数据库,而是gitlab自集成的数据库,那么安装很简单1.1、采用外置自建数据库需要先成功安装数据库,确保数据库可以正常访问在数据库中创建对应的数据库、账号、密码,然后授权下载rpm包,执行yum install gitlab-ce.xxx.rpm修改配置文件 /etc/gitlab/gitlab.rb重载配置 gitlab-ctl r.