centos7.6离线安装Redmine 5.1.1教程
网络上离线安装redmine资料少,有帮助大家请点赞
总体思路:先申请一台云主机(天翼云、阿里、腾讯),安装相同版本的centos操作系统,有两个好处:
一是用云主机下载Redmine的RPM包以及所有依赖,再复制到离线centos服务器上;
二是可以先在云主机上安装一遍,避免搞崩centos服务器。
前面步骤参考https://www.cnblogs.com/a565810497/p/18406701,尽量用root权限执行
安装需要的库
联网安装:yum install -y gcc gcc-c++ make automake cmake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel mysql-devel ruby ruby-devel rubygems
其实只要gcc gcc-c++ make automake autoconf openssl-devel zlib-devel这几个就够,正常都有
1:安装mysql
centos7默认安装mariadb数据库,跟mysql冲突,需要先卸载
rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
云主机下载mysql的rpm安装包(共有8个,需要逐个下载并拷贝到centos服务器)
yum reinstall --downloadonly --downloaddir=/home/whroot/ mysql-community-release
用rpm -ivh 同时执行
启动 MySQL 服务并设置其开机自启
systemctl start mysqld
sudo systemctl enable mysqld
查看临时密码并初始化设置
sudo grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
mysql -u username -p
create database redmine;
2:官网下载redmine,安装到/data/redmine(改成你自己的路径)
cd redmine-5.1.1
cp config/database.yml.example config/database.yml
vim config/database.yml
编辑配置文件,修改连接的mysql密码,密码不加引号
3:离线安装rvm
云主机下载rvm-1.29.12拷贝到centos服务器安装
curl -L get.rvm.io | bash -s stable
mkdir rvm && cd rvm
tar -xzf rvm-1.29.9.tar.gz
/install --auto-dotfiles
source /data/rvm/scripts/rvm 改成你自己的rvm目录
rvm -v
4:离线安装ruby
参考https://rvm.io/rvm/offline
参考https://blog.csdn.net/topswim/article/details/79260369
从https://ftp.ruby-lang.org/pub/ruby/ 手工下载ruby-2.7.8.tar.bz2(3.0后未提供bz2版本,直接把gz改为bz2我试过不行)
rubygems、yaml不用装
移动ruby-2.7.8.tar.bz2到/usr/local/rvm/archives文件夹中(没有对应文件夹需创建)。
并将其路径加入~/.rvmrc中(没有对应文件需创建)
echo rvm_archives_path=/usr/local/rvm/archives/ >> ~/.rvmrc(改成你自己的rvm路径)
取消自动依赖并检查依赖包
rvm autolibs read-fail
rvm requirements
缺的依赖包,需要手工下载安装
patch-2.7.1-12.e17_7.x86_64.rpm
bison-3.0.4-2.e17.x86_64.rpm
ncurses-5.9-14.20130511.e17_4.x86 64.rpm
ncurses-deve1-5.9-14.20130511.e17_4.x86_64.rpm
readline-deve1-6.2-10.e17.x86_64.rpm
readline-6.2-10.e17.x86_64.rpm(已有,如果没有需安装)
libffi-3.0.13-19.e17.x86_64.rpm
libffi-deve1-3.0.13-19.e17.x86_64.rpm
安装libffi,提示跟系统已有冲突,用rpm -e 删除后再安装
sqlite-3.7.17-8.e17.x86_64.rpm(已有,如果没有需安装)
sqlite-deve1-3.7.17-8.e17.x86_64.rpm
再次执行rvm requirements,发现缺少ruby(无语,这个操作就是安装ruby2.7.8)
需要先安装一个ruby-2.0.0.648-39.e17_9.x86_64.rpm
云主机上面执行
yum reinstall --downloadonly --downloaddir=/home/whroot/test ruby
就可以下载ruby-2.0.0,但是在centos执行仍提示缺少依赖
在云主机上面下载9个rvm安装包:
rubygem-bigdecimal-1.2.0-39.e17_9.x86_64.rpm
ruby-2.0.0.648-39.e17_9.x86_64.rpm
ruby-libs-2.0.0.648-39.e17_9.x86_64.rpm
rubygems-2.0.14.1-39.e17_9.noarh.rpm
rubvgem-io-console-0.4.2-39.e17_9.x86_64.rpm
rubygem-psych-2.0.0-39.e17_9.x86_64.rpm
rubygem-rdoc-4.0.0-39.e17_9.noarch.rpm
rubygem-json-1.7.7-39.el7_9.x86_64.rpm
rubygem-irb-2.0.0.648-39.e17_9.noarch.rpm
再次执行rvm requirements
用rvm安装ruby
echo “” >> /usr/local/rvm/gemsets/default.gems (原本就为空)
echo “” >> /usr/local/rvm/gemsets/global.gems(原本就为空)
rvm install 2.7.8 (说可以加参数–rubygems 3.2.3但我执行失败 )
rvm -v 查看仍是2.0版本
rvm use 2.7.8 --default 使用2.7.8并设置默认(感觉默认设置不对,每次登录都要重新执行use)
rvm -v 显示2.7.8安装成功
gem -v 显示3.1.6安装成功
5:离线安装Rails6.1.7.8
官网https://rubygems.org/可以查询gem安装包所需依赖,供参考
云主机执行 gem fetch rails -v 6.1.7.8
,拷贝到centos服务器
安装命令:gem install rails -v 6.1.7.8
,提示要很多gem
这里有两个解决思路:
1是在云主机上面联网执行gem install rails -v 6.1.7.8,安装后会把gem存放在/usr/local/rvm/gems/ruby-2.7.8/cache,用tar命令全部打包拷贝
2是根据提示下载缺的gem,网络说有批量下载命令,我测试好像不行
思路1:(推荐)
rvm use 2.7.8
cd /usr/local/rvm/gems/ruby-2.7.8/cache
tar -cvf gems.tar *.gem (云主机)
在centos服务器上新建一个目录
tar -xvf gems.tar
gem install *.gem (全部安装,需要一段时间)
rails -v --显示6.1.7.8安装成功
思路2: 根据提示例如:activesupport(=6.1.7.8),意思很清楚就是需要版本6.1.7.8的activesupport,云主机上面执行gem fetch activesupport-v 6.1.7.8就可以下载,再执行gem install activesupport-v 6.1.7.8, bundler >= 1.15.0,意思需要版本大于1.15.0的bundler,根据提示一直操作,这个步骤很繁琐,需要很多gem
6:根据 Gemfile 安装项目所需gem
cd redmine-5.1.1
bundle install --local
修改redmine-5.1.1/Gemfiles,把6.1.7.6改为6.1.7.8
再次执行bundle install --local 就提示成功
提示:这个过程碰到确实库文件、依赖有冲突,都是gem版本问题,可以适当降低或者升级版本,都可以解决。
参考文章:https://www.cnblogs.com/a565810497/p/18406701
生成一个新的安全令牌,用于 Rails 应用的会话和 Cookie 加密
bundle exec rake generate_secret_token
在生产环境中运行数据库迁移,更新数据库结构以匹配应用的当前版本,生成库表结构
RAILS_ENV=production bundle exec rake db:migrate
注意:出现Segmentation fault(core dumped)有问题,需要根据提示安装gem,大概率就是版本问题
加载 Redmine 的默认数据到数据库中,以便进行初始设置和配置。
RAILS_ENV=production bundle exec rake redmine:load_default_data
选择zh就是选择中文
这样redmine-5.1.1就成功安装
7:启动服务
bundle exec rails server -e production -b 0.0.0.0 -p 3000 &
这个问题参考https://www.cnblogs.com/a565810497/p/18406701
vim GemFile
插入gem 'blankslate'
重新安装gem
cd redmine-5.1.1
bundle install --local
bundle exec rails server -e production -b 0.0.0.0 -p 3000 &
就可能打开登录界面,有帮助大家请帮忙点赞