使用rmpbuild製作AliSQL資料庫rpm軟體包

来源:http://www.cnblogs.com/lord-dang/archive/2017/02/16/6407889.html
-Advertisement-
Play Games

環境:REHL6.5 軟體:rpmbuild 使用到的文件:ALiSQL-Master 一、安裝所需要的軟體 [root@alisql ~]# yum install rpm* rpm-build rpmdev* –y[root@alisql ~]# rpmdev-setuptree[root@al... ...



環境:REHL6.5

軟體:rpmbuild

使用到的文件:ALiSQL-Master

一、安裝所需要的軟體

[root@alisql ~]# yum install rpm* rpm-build rpmdev* –y
[root@alisql ~]# rpmdev-setuptree
[root@alisql ~]# tree rpmbuild/  
rpmbuild/
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS

5 directories, 0 files

二、將軟體源碼包上傳到SOURCE目錄

三、編寫配置文件

在rpmbuild/SPECS目錄下執行rpmdev-newspec -o alisql.spec,會在當前目錄下生成名為alisql.spec的模板文件

[root@alisql SPECS]# rpmdev-newspec -o alisql.spec

根據修改alisql.spec文件,修改後的內容如下

Name:           alisql
Version:        5.6.3
Release:        1%{?dist}
Summary:        AliSQL

Group:          System Environment/Libraries
License:        GPL
URL:            http://www.abner.com.cn
Source0:        %{name}-%{version}.tar.gz
BuildRequires:  gcc gcc-c++
Requires:       ncurses-devel bison

%define MYSQL_USER mysql
%define MYSQL_GROUP mysql


%description    
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.


%prep
%setup -q
useradd mysql
mkdir –p /usr/local/mysql
mkdir -p /data/mysqldb

%build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8   -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1

make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'

%pre
id mysql||useradd -m -s /bin/bash mysql &>/dev/null
mkdir -p /data/mysqldb
chown -R mysql: /data/mysqldb

%clean
rm -rf $RPM_BUILD_ROOT


%post 
/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysqldb &>/dev/null
cp -f /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 
sed -i 's/^# basedir.*/basedir=\/usr\/local\/mysql/g' /etc/my.cnf
sed -i 's/^# datadir.*/datadir=\/data\/mysqldb/g' /etc/my.cnf
sed -i 's/^# socket.*/socket= \/tmp\/mysql.sock/g' /etc/my.cnf
cp -f /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
echo export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH >> /etc/profile
source /etc/profile
chkconfig --add mysqld &>/dev/null
chkconfig mysqld on &>/dev/null


%preun
chkconfig --del mysqld &>/dev/null
rm -rf /etc/init.d/mysqld &>/dev/null

%postun 
userdel -r mysql &>/dev/null
rm -fr /data/mysqldb &>/dev/null
rm -fr /usr/local/mysql &>/dev/null

%files
%defattr(-,mysql,mysql,-)
/usr/local/mysql/*



%changelog

四、安裝打包編譯需要的軟體

1、安裝編譯所需要的軟體

[root@alisql ~]# yum install gcc gcc-c++ ncurses-devel perl -y

2、安裝cmake軟體(點此下載

將cmake源碼包上傳到家目錄進行解壓

[root@alisql ~]# tar -xf cmake-2.8.8.tar.gz 
[root@alisql ~]# cd cmake-2.8.8
[root@alisql cmake-2.8.8]# ./configure 
[root@alisql cmake-2.8.8]# make && make install

3、安裝bison

[root@alisql ~]# yum install bison -y

五、在rpmbuild/SPECS目錄下執行打包編譯

[root@alisql SPECS]# rpmbuild -bb alisql.spec

等待軟體打包成功,此時會在rpmbuild/RPMS/x86_64文件夾下生成rpm軟體包。

參考文章

1、http://blog.chinaunix.net/uid-23069658-id-3944462.html

2、http://laoguang.blog.51cto.com/6013350/1103628

3、http://blog.csdn.net/kouyanqiu/article/details/53103249


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、查詢指定時間區間的工作日 這個主要難點是法定節假日,國家的法定節假日每年都不一樣,還涉及到調休,所以我們設計一個假日表。主要欄位有年份,類型(是否調休),假期日期。如下: 添加好當年的假期和調休日期 寫個方法計算出除開法定假日的工作日 執行這個表值函數後加上調休日和減去法定假日就是工作日了,大家 ...
  • 1、處理超大量數據能力強 2、可以運行在便宜的PC伺服器集群上 4、對數據的高併發讀寫能力強(mysql在上萬數據的寫入對磁碟IO消耗很大) 5、對海量數據的高效存儲和訪問。 6、對數據的高可靠擴展性和高可用性 ...
  • 最初的時候,我們只是想設計一個Web版本的HBase數據瀏覽器,類似於PL/SQL那樣便捷,後來又添加了HDFS分散式文件系統瀏覽器,再後來又添加了Hive數據倉庫瀏覽器功能。這個時候,hadoop集群由一個擴張到三個,大數據業務系統所涉及到的NoSQL資料庫也越來越多,譬如Neo4j、MongoD... ...
  • 查詢本月所有的天數: 查詢本周所有的天數: 示例: 如下圖所示,有表MO_Orders,欄位:BookTime,Number,Count。 查詢出本周的每天的數據總和。 查詢語句: 查詢效果如下圖,其中id為星期,從周一開始至周日: 示例:如下圖所示,有表: MO_Orders,欄位:BookTim ...
  • phpMyAdmin提示“無法在發生錯誤時創建會話,請檢查 PHP 或網站伺服器日誌,並正確配置 PHP 安裝。” ...
  • 先貼上解決方案截圖 一、新建4個解決方案文件夾 1-Presentation 2-Application 3-Domain 4-Infrastructure 二、在解決方案文件夾中分別創建項目 新建.NET Core Web應用程式,【身份驗證】需要選擇【個人用戶賬戶】否則無法執行migration ...
  • 1.緩存池 MySQL的設計是通過緩存池的方式的,也就是說將一部分的數據都儲存到記憶體中,當我們查找一個數據的時候,如果發現在緩存池中的時候,就能夠直接的從緩存中獲取,如果不在的話,那麼就去磁碟中載入.所以建議資料庫伺服器採用64位的操作系統,這樣就能夠使用很大的記憶體。下麵的一些參數是設置記憶體池的: ...
  • elasticsearch-5.2.1安裝方法 1. 安裝java 右擊【我的電腦】 【屬性】 【高級系統設置】 【環境變數】,如圖: 選擇【新建系統變數】--彈出“新建系統變數”對話框,在“變數名”文本框輸入“JAVA_HOME”,在“變數值”文本框輸入JDK的安裝路徑(也就是步驟5的文件夾路徑) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...