安装Debian 12

前面为了在windows上好开发,想要在windows上配置开发环境,以源码方式在本地部署运行,但经过好几天各种版本切换及配置组件库等各种操作后,证明windows上搭建redmine6支持的运行环境没有那么简单,后续有时间再更一篇windows踩坑记。一句话总结就是windows真的没有想象的简单,建议放弃。
后来尝试用Linux系统,但过于天真试了centos7和redhat7.9也是遇到一些编译库(主要是gcc系列的库)的编译兼容性问题,不想再折腾了,遂换了新版Debian12,总体过程较为顺利,记录如下。

下载redmine-6.0.6

可去官网直接下载源码包redmine-6.0.6,放到指定文件夹中。当然也可通过wget进行下载。下载后在指定目录进行解压:

cd /path/to/downloaded/filesudo tar -xzvf redmine-6.0.6.tar.gz -C /path/to/target/directory

安装Ruby3

个人在安装的时候选择的是Ruby3.2.5版本,redmine官方对于Ruby的版本要求为ruby ‘>= 3.2.0’, ‘< 3.5.0’,理论上符合都没问题。

在Linux上安装我选择的方式是使用rvm进行安装,验证过还是很方便的,且后续可进行版本的切换,因为rvm本身就是ruby的版本管理工具(ruby version manager)。

在安装rvm之前需要先安装一些包依赖:

sudo apt update
sudo apt install -y curl gpg gnupg2 autoconf bison libssl-dev libreadline-dev zlib1g-dev libyaml-dev libsqlite3-dev

开始安装rvm:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys  409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB\curl -sSL https://get.rvm.io | bash -s stablesource ~/.rvm/scripts/rvmecho 'source /etc/profile.d/rvm.sh' >> ~/.bashrc

直接安装ruby:

rvm install 3.2.5

可查看当前ruby版本并设置默认使用版本:

ruby -v
rvm use 3.2.5 --default

安装及配置MySQL8

使用命令安装mysql数据库,由于直接使用apt安装失败了,我是采取的手动安装的方式,先到mysql官网下载debian对应安装索引文件mysql debian version,然后再通过命令进行安装。

sudo dpkg -i mysql-apt-config_0.8.17-1_all.debsudo apt updatesudo apt install mysql-server -ysudo systemctl status mysql

安装过程中在终端中会出现图形化选择页面,选择过程中可能会进入类似死循环的过程,注意选项配合,只要装了server就行了。

初始化用户和数据库

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

安装项目依赖

切换到项目目录下安装依赖包,可以不加依赖包参数这样可以把开发 测试 生产环境下的包都装上,因为装的过程比较慢,容易误解为卡死,可加上- -verbose参数用于查看实时状态。

cd /path/to/redmine
bundle install --without development test

安装过程中可能会有个别库报错,原因是某些前置库没有安装,安装好后使用gem单独安装即可,如:

sudo apt install -y build-essential libmariadb-dev-compat libmariadb-dev default-libmysqlclient-devgem install mysql2 --verbose

更改项目数据库的配置文件

切换到项目目录下的config文件,拷贝数据库配置示例文件,更改实际配置

cp config/database.yml.example config/database.yml

创建和迁移已有数据库

RAILS_ENV=production bundle exec rake db:create
RAILS_ENV=production bundle exec rake db:migrate

可选择加载默认数据

RAILS_ENV=production bundle exec rake redmine:load_default_data

创建过程可能会有credentials类的报错,重新通过命令获取认证信息就能过

bin/rails credentials:edit --environment production

启动服务

bundle exec rails server -e production

项目启动默认端口为3000,故访问http://localhost:3000或http://127.0.0.1:3000均可直达页面,同一局域网设备在无路由限制和防火墙策略的情况下也可通过服务主机的IP加端口进行访问(需配置启动命令-b 0.0.0.0),如下:
在这里插入图片描述
启动过程中还报了一个puma服务找不到,经过检查是puma的依赖在配置文件中只在生产环境下存在,bundle install的时候把- -without development test去掉重新跑一遍就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919515.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919515.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919515.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超长视频生成新突破!LongVie框架问世,创作不再受时长限制

超长视频生成新突破&#xff01;LongVie框架问世&#xff0c;创作不再受时长限制 文章来源&#xff1a;Poixe AI 在AI技术飞速发展的当下&#xff0c;视频生成领域取得了令人瞩目的进步&#xff0c;尤其是在短视频创作方面。然而&#xff0c;当视频时长超过一分钟时&#xff…

MongoDB 查询方法与高级查询表(Python版)

目录 一、MongoDB3步快速安装 1.1​下载安装包 1.2运行安装程序​ 1.3​验证安装​打开CMD执行&#xff1a; 1.4 基本查询操作 二、高级查询操作符表 2.1 比较操作符 2.2 逻辑操作符 2.3 元素操作符 2.4 数组操作符 三、高级查询案例 3.1 复杂条件组合 3.2 数组查…

选型指南:如何为企业挑选合适的边缘计算网关

选型指南&#xff1a;如何为企业挑选合适的边缘计算网关在企业迈向智能化转型的道路上&#xff0c;选择一款合适的物联网边缘计算网关至关重要。面对众多型号和功能各异的网关产品&#xff0c;企业该如何做出正确抉择呢&#xff1f;​首先要考虑的是网关的兼容性。蓝蜂物联网边…

HT8693 音频功率放大器:赋能优质音频体验的核心之选

在音频设备快速迭代的当下&#xff0c;用户对音质表现、设备稳定性和场景适应性的需求日益提升&#xff0c;一款性能卓越的音频功率放大器成为连接音源与听觉享受的关键桥梁。HT8693 凭借双模式切换、强劲输出、智能保护等核心优势&#xff0c;为各类音频设备提供了可靠的性能支…

python+flask后端开发~项目实战 | 博客问答项目--模块化文件架构的基础搭建

项目功能概述&#xff1a; 首页(公开博客显示)博客发布与查询用户登录与注册底层MySQL数据库的动态响应与支持 简介&#xff1a;Flask作为Python的一个轻量级Web框架&#xff0c;以其灵活性和可扩展性&#xff0c;赢得了众多开发者的青睐。从本文开始&#xff0c;你将从0开始…

精品方案 | GCKontrol与OMNeT++联合仿真在机载网络性能分析中的应用

概述本文基于GCKontrol搭建了飞行仿真模型&#xff0c;并基于OMNeT搭建了机内网络系统&#xff0c;实现了不同专业、不同平台的模型集成与调试。通过这种联合仿真架构&#xff0c;能够模拟飞机在不同飞行状态下的网络性能&#xff0c;极大提高了性能评估的精度和可靠性。这不仅…

阶跃星辰 StepFun 入驻 GitCode 平台,带来工业级 AI 体验

在 2025 年的 AI 产业应用实践中&#xff0c;开发者面临三重核心挑战&#xff1a;​⚠️上下文窗口局限​&#xff1a;主流 AI 模型普遍受限于 4K-32K 的上下文长度&#xff0c;导致技术方案文档需被强制拆分处理&#xff0c;破坏架构设计的连贯性。 ​⚠️跨行业文档识别缺陷​…

亚马逊新品爆单策略:从传统困境到智能突破

新品上架&#xff0c;是每个亚马逊卖家最期待又最煎熬的阶段。我至今记得一款新品上线后的第一周&#xff1a;每天看着广告费像流水一样烧掉&#xff0c;单量却迟迟不见起色。后台的ACOS一路飙升&#xff0c;几天时间&#xff0c;我的预算已经消耗了一大半。那种“钱花了&#…

第7章 React性能优化核心

性能优化是React开发中的重要主题,直接影响用户体验和应用成功。本章将深入探讨React性能优化的核心技术和最佳实践,从组件记忆化到Bundle优化,帮你掌握构建高性能React应用的关键技能。 通过本章学习,你将掌握如何识别性能瓶颈、选择合适的优化策略,以及在实际项目中应用…

docker CI操作演示分享(第四期)

引言java项目&#xff1a;1、将项目通过maven进行编译打包2、将文件上传到指定的服务器中3、将war包放到tomcat的目录中4、通过Dockerfile将tomcat和war包转成一个镜像&#xff0c;由docker-compose去运行容器项目更新后&#xff1a;将上述流程再次的从头到尾的执行一次go项目&…

Kubernetes 的 YAML 配置文件-kind

Kubernetes的YAML配置文件–kind 在 Kubernetes 的 YAML 配置文件中,kind: 字段用于指定你要创建的资源对象类型。Kubernetes 支持多种资源类型,它们可以分为以下几大类: 一、核心资源类型(常用) 1. Pod 描述:最小的部署单元,包含一个或多个容器。 特点:临时性(Pod …

Tumblr长文运营:亚矩阵云手机助力多账号轮询与关键词布局系统

——基于硬件虚拟化与AI语义分析的垂直内容渗透方案​一、技术架构&#xff1a;长文运营的三大核心引擎​​多账号轮询系统​​虚拟设备集群​&#xff1a;基于ARM服务器虚拟化技术&#xff08;如亚矩阵RK3588芯片&#xff09;&#xff0c;单台物理服务器可模拟500独立Tumblr客…

K8s命名空间:资源隔离与管理的核心

K8s 命名空间&#xff08;Namespace&#xff09;概念Kubernetes&#xff08;K8s&#xff09;中的命名空间是用于在集群内对资源进行逻辑隔离的机制&#xff0c;通过划分不同的命名空间&#xff0c;可以将集群资源&#xff08;如 Pod、Service、Deployment 等&#xff09;分配到…

MTK Linux DRM分析(一)- DRM简介

Linux的DRM&#xff08;Direct Rendering Manager&#xff09;驱动是内核中管理图形硬件的核心子系统&#xff0c;旨在支持现代显卡的复杂功能&#xff08;如3D渲染、多图层合成和硬件加速&#xff09;&#xff0c;同时解决传统FB&#xff08;Framebuffer&#xff09;架构的局限…

数据挖掘笔记:点到线段的距离计算

1. 写在前面 最近在搞一个"大曲率弯道"场景的数据挖掘&#xff0c;里面有个逻辑是给定自车的定位坐标和车道线的坐标点&#xff0c;根据点到线段的距离&#xff0c;去找到自车所在的车道中心线。 然后发现这个计算其实在很多场景中都是可以用到的&#xff0c;所以就…

C++篇(2)C++入门(下)

一、引用1.1 引用的概念和定义引用不是新定义一个变量&#xff0c;而是给已经存在的变量取别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用一块内存空间。类型& 引用别名 引用对象int a 10;int& b a; //b是a的引用1.2 引用的…

Windows 如何清理右键菜单?电脑桌面右键菜单里出现一个清理内存 怎么去掉?

RightMenuMgr是一款绿色小巧免费的右键菜单管理工具&#xff0c;简体中文界面&#xff0c;很方便操作&#xff0c;可以帮助用户轻松管理右键菜单&#xff0c;能够重新定义传统的右键&#xff0c;软件体积小&#xff0c;功能强大&#xff0c;安全无毒&#xff0c;且使用免费&…

【力扣 Hot100】 刷题日记——双指针的经典应用

D11 两数之和 II - 输入有序数组 LCR 006. 两数之和 II - 输入有序数组 - 力扣&#xff08;LeetCode&#xff09; 这道题目也是双指针的一个典型应用&#xff0c;题目要求找出和为target的两个数字的下标&#xff0c;并且告诉了有且仅有一对符合条件的数字。 而且题目已经给…

在一台没联网的机器上,用ollama加载qwen3,14b

文章目录 背景 去另一台机器下载模型 使用docker部署ollama 后续 背景 项目甲方终于搞定了一台T4,咱们的项目又可以正常推进了。 但是,高高兴兴地上去之后,发现,此机器竟不可以联网~ 不过好在,前辈已经把docker装好了。 竟然还有ollama的镜像。 可以的,至少可以节省一…

Angular由一个bug说起之十八:伴随框架升级而升级ESLint遇到的问题与思考

伴随框架升级而升级ESLint遇到的问题与思考 对于eslint这个前端事实上的代码检查工具标准&#xff0c;大家可能是再熟悉不过了。几乎是在编码的时时刻刻都在和它接触。在我们开发维护长达十年的项目中自然也是采用了ESLint&#xff0c;在从 AngularJS 一路到今天现代化的 Angu…