從零開始部署經典開源項目管理系統最新版redmine6-Linux Debian12

安裝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…