fastdfs java,【編譯打包】fastdfs-5.0.5-7.el7.centos.src.rpm

 2023-10-08 阅读 19 评论 0

摘要:安裝問題是典型的無意義的重復勞動,理應簡單,一個軟件應該讓使用者更專注于軟件的用法和配置文件,而不是安裝過程。fastdfs官方的spec文件功能不夠完整,僅僅能夠完成rpm打包,但是rpm包安裝時會有各種問題。極少看到有人反饋spec文件問題,估計使用

安裝問題是典型的無意義的重復勞動,理應簡單,一個軟件應該讓使用者更專注于軟件的用法和配置文件,而不是安裝過程。


fastdfs官方的spec文件功能不夠完整,僅僅能夠完成rpm打包,但是rpm包安裝時會有各種問題。極少看到有人反饋spec文件問題,估計使用rpm包進行安裝的,只有我一人。而使用rpm安裝,可以省略重復無意義且容易出錯的編譯過程,提升軟件安裝體驗。


(文末有百度網盤的鏈接)

fastdfs java、

我對官方的spec文件進行了大幅改造,對默認配置文件也進行了適當調整,改進如下:


1、啟動腳本

/usr/bin/stop.sh 和/usr/bin/restart.sh 名字過于霸氣,拋棄!

原fdfs_trackerd和fdfs_storaged啟動腳本由于調用/usr/bin/stop.sh /usr/bin/restart.sh

新的啟動腳本改為調用?/etc/rc.d/init.d/functions 公共函數進行啟動、關閉和重啟。


2、運行身份

配置文件相關選項默認為空,即探測當前用戶身份,這容易誤導使用者用root運行程序而造成安全隱患。rpm包安裝時會創建普通用戶fdfs,配置文件改為,run_by_user=fdfs和run_by_group=fdfs

使用root身份執行啟動腳本,程序會自動切換到fdfs用戶身份。


4、路徑問題

配置文件中的路徑,統一歸于/var/lib/fastdfs之下,屬主fdfs,比如/etc/fdfs/storage.conf

base_path=/var/lib/fastdfs/storage


5、將打包后的二進制包fastdfs-server 拆分成fastdfs-tracker 和fastdfs-storage,便于分別部署。


6、配置文件微調

文件名去掉sample后綴,直接使用conf文件,

將可能被修改的參數放入配置文件前面,方便查找。


附上修改后的fastdfs.spec文件如下:

Name:		fastdfs
Version:	????????5.0.5
Release:	????????7%{?dist}
Summary:	FastDFS?server?and?client
License:	????????GPL
Group:		Arch/Tech
URL:		????????https://github.com/happyfish100/fastdfsBuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u}?-n)?Source0:	%{name}-%{version}.tar.gzSource1:	fdfs_trackerd.init
Source2:	fdfs_storaged.init
Source10:	fdfs_trackerd.service
Source20:	fdfs_storaged.serviceSource3:	tracker.conf
Source4:	storage.conf
Source5:	client.conf
Source6:	http.confRequires:	%__cp?%__mv?%__chmod?%__grep?%__mkdir?%__install?%__idBuildRequires:	gcc
BuildRequires:??glibc-devel
BuildRequires:??libtool
BuildRequires:??make
BuildRequires:	libfastcommon-devel
Requires(post):?chkconfig%description
This?package?provides?tracker?&?storage?of?fastdfs%package??tracker
Summary:??fastdfs?tracker
Requires:?fastdfs
Requires:?libfastcommon%package??storage
Summary:??fastdfs?storage
Requires:?fastdfs
Requires:?libfastcommon%package?tool
Summary:?fastdfs?tools
Requires:?libfastcommon%package?-n?libfdfsclient
Summary:?The?client?dynamic?library?of?fastdfs
Requires:?libfastcommon%package?-n?libfdfsclient-devel
Summary:?The?client?header?of?fastdfs
Requires:?libfdfsclient%description?tracker
This?package?provides?tracker?of?fastdfs%description?storage
This?package?provides?storage?of?fastdfs%description?-n?libfdfsclient
This?package?is?client?dynamic?library?of?fastdfs%description?-n?libfdfsclient-devel
This?package?is?client?header?of?fastdfs?client%description?tool
This?package?is?tools?for?fastdfs%prep
%setup?-q%build
#?FIXME:?I?need?to?fix?the?upstream?Makefile?to?use?LIBDIR?et?al.?properly?and
#?send?the?upstream?maintainer?a?patch.
#?add?DOCDIR?to?the?configure?part
./make.sh%install
rm?-rf?%{buildroot}
DESTDIR=$RPM_BUILD_ROOT?./make.sh?installmkdir?-p?$RPM_BUILD_ROOT%{_bindir}
mkdir?-p?$RPM_BUILD_ROOT%{_initrddir}
mkdir?-p?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs
mkdir?-p?$RPM_BUILD_ROOT%{_sharedstatedir}/fastdfs/{client,storage,tracker}cp?conf/storage_ids.conf?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/
cp?conf/mime.types?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/rm?-rf?$RPM_BUILD_ROOT%{_sysconfdir}/init.d/fdfs_storaged?
rm?-rf?$RPM_BUILD_ROOT%{_sysconfdir}/init.d/fdfs_trackerd
rm?-rf?$RPM_BUILD_ROOT%{_bindir}/restart.sh
rm?-rf?$RPM_BUILD_ROOT%{_bindir}/stop.sh
rm?-rf?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/tracker.conf.sample
rm?-rf?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/storage.conf.sample
rm?-rf?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/client.conf.sample
rm?-rf?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/storage_ids.conf.sample#?install?SYSV?init?stuff
%{__mkdir}?-p?$RPM_BUILD_ROOT%{_initrddir}
%{__install}?-m?755?%{SOURCE1}??$RPM_BUILD_ROOT%{_initrddir}/fdfs_trackerd
%{__install}?-m?755?%{SOURCE2}??$RPM_BUILD_ROOT%{_initrddir}/fdfs_storaged
%{__install}?-m?644?%{SOURCE3}?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/tracker.conf
%{__install}?-m?644?%{SOURCE4}?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/storage.conf
%{__install}?-m?644?%{SOURCE5}?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/client.conf
%{__install}?-m?644?%{SOURCE6}?$RPM_BUILD_ROOT%{_sysconfdir}/fdfs/http.conf%pre
#?Add?the?"fdfs"?user
getent?group?fdfs?>/dev/null?||?groupadd?-r?fdfs
getent?passwd?fdfs?>/dev/null?||?\useradd?-r?-g?fdfs?-s?/sbin/nologin?\-d?/var/lib/fastdfs?-c?"fastdfs?user"??fdfs
exit?0%post?tracker
/sbin/chkconfig?--add?fdfs_trackerd%preun?tracker
/sbin/chkconfig?--del?fdfs_trackerd%post?storage
/sbin/chkconfig?--add?fdfs_storaged%preun?storage
/sbin/chkconfig?--del?fdfs_storaged%postun%clean
rm?-rf?$RPM_BUILD_ROOTpushd?common;make?-s?clean?;popd
pushd?tracker;make?-s?clean?;popd
pushd?storage;make?-s?clean?;popd
pushd?test;make?-s?clean?;popd
pushd?client?;make?-s?clean?;popd%files
%defattr(-,root,root,-)
%dir?%{_sysconfdir}/fdfs
%dir?%attr(0755,fdfs,fdfs)?%{_sharedstatedir}/fastdfs%files?tracker
%defattr(-,root,root,-)
%{_bindir}/fdfs_trackerd
%{_initrddir}/fdfs_trackerd
%config(noreplace)?%{_sysconfdir}/fdfs/tracker.conf
%dir?%attr(0755,fdfs,fdfs)?%{_sharedstatedir}/fastdfs/tracker%files?storage
%defattr(-,root,root,-)
%{_bindir}/fdfs_storaged
%{_initrddir}/fdfs_storaged
%config(noreplace)?%{_sysconfdir}/fdfs/storage.conf
%dir?%attr(0755,fdfs,fdfs)?%{_sharedstatedir}/fastdfs/storage%files?-n?libfdfsclient
%{_libdir}/libfdfsclient*
%config(noreplace)?%{_sysconfdir}/fdfs/client.conf
%config(noreplace)?%{_sysconfdir}/fdfs/http.conf
%config(noreplace)?%{_sysconfdir}/fdfs/mime.types
%config(noreplace)?%{_sysconfdir}/fdfs/storage_ids.conf
%dir?%attr(0755,fdfs,fdfs)?%{_sharedstatedir}/fastdfs/client%files?-n?libfdfsclient-devel
%defattr(-,root,root,-)
%{_includedir}/fastdfs/*%files?tool
%{_bindir}/fdfs_monitor
%{_bindir}/fdfs_test
%{_bindir}/fdfs_test1
%{_bindir}/fdfs_crc32
%{_bindir}/fdfs_upload_file
%{_bindir}/fdfs_download_file
%{_bindir}/fdfs_delete_file
%{_bindir}/fdfs_file_info
%{_bindir}/fdfs_appender_test
%{_bindir}/fdfs_appender_test1
%{_bindir}/fdfs_append_file
%{_bindir}/fdfs_upload_appender%changelog
*?Thu?Nov?05?2015??Purple?Grape?<purplegrape4@gmail.com>
-?new?init?scripts
-?run?as?user?fdfs?by?default*?Mon?Jun?23?2014??Zaixue?Liao?<liaozaixue@yongche.com>
-?first?RPM?release?(1.0)




附件數量較多,移步百度網盤

http://pan.baidu.com/s/1eQmCMcy



如果將srpm包經過重新編譯,也適用于CentOS 6



版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/131996.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息