公司有需求要求加密redis,原本是有個配置文件選項requirepass 能夠設置密碼,可是公司以爲能夠經過修改配置文件使密碼失效,因而乎直接修改源碼(強制設置requirepass爲固定密碼),作成rpm包就很是安全了html
1.下載redis源碼包nginx
http://redis.googlecode.com/files/redis-2.6.14.tar.gzweb
2.修改源碼編譯redis
tar zxvf redis-2.6.14.tar.gzvim
cd redis-2.6.14安全
vim src/config.cide
把331行給刪除,移到else語句結束後,無論爲不爲空都設置requirepasspost
server.requirepass = zstrdup("123456");
保存退出,而後接下來編譯google
make
\cp src/redis-server /usr/local/bin/
\cp src/redis-cli /usr/local/bin/
3.製做rpm包
mv redis-2.6.14.tar.gz /usr/src/redhat/SOURCES
cd /usr/src/redhat/SPECS/
vim redis.spec
Summary:the first rpm package
Name:redis
Version:2.6.14
Release:2
Vendor:zhangrenfang@gmail.com
License:Share
Group:Applications/Text
Source:redis-2.6.14.tar.gz
% description
my test redis crypto
%prep
tar -zxvf /usr/src/redhat/SOURCES/redis-2.6.14.tar.gz
%build
cd /usr/src/redhat/BUILD/redis-2.6.14
make
%clean
rm -rf /usr/src/redhat/BUILD/redis-2.6.14
%files
% defattr(-,root,root)
/usr/local/bin/redis-cli
/usr/local/bin/redis-server
[root@localhost SPECS]# rpmbuild -ba redis.spec
若運行沒有錯誤,則產生,/usr/src/redhat/SRPMS/redis-2.6.14-2.src.rpm和/usr/src/redhat/RPMS/x86_64/redis-2.6.14-2.x86_64.rpm
rpm -qpi redis-2.6.14-2.x86_64.rpm能夠查看到包的信息
relocations:若是非空,表示包能夠安裝到新的目錄。在安裝包的時候,使用--relocate=/usr/loca/=/home/cyx/ 這樣來修改包的安裝位置。
不過可能不能使用,由於包是二進制的,可能程序編譯的時候使用了絕對路徑。
rpm包製做由rpmbuild來生成。rpmbuild用到了幾個目錄:
BUILD
BUILD:build過程執行的目錄
RPMS:最後生成的RPM包的位置
SOURCES:源文件位置
SPECS:spec文件的位置,rpmbuild使用spec文件的描述信息來build包
SRPMS:源代碼rpm包的位置
spec文件是指導rpmbuild生成包的關鍵文件。放在SPECS目錄下面:
----------------------------------example------------------------------------------------------------------
[root@v092019 SPECS]# cat nginx-0.8.54.spec
Name:nginx
Summary:nginx-server!
Version:0.8.54
Release:1
Group:taobao.com
License:GPL
URL:http://www.nginx.com/
BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
Source:%{name}-%{version}.tar.gz
Prefix:%{_prefix}
Packager:nginx
% description
nginx-httpd-server
%prep
%setup -q
%build
CFLAGS="-g"
make -j `cat /proc/cpuinfo | grep processor | wc -l`
%install
make DESTDIR=$RPM_BUILD_ROOT install
%files
% defattr(755,daemon,daemon)
/usr/local/%{name}
%pre
echo nginx,preinstall
%post
echo nginx,afterinstall,done
%preun
echo nginx,uninstall
%postun
echo nginx,uninstall,done
---------------------------------------------end-----------------------------------------------------------------
這樣咱們就能夠定製本身的rpm包了
參考連接:http://zhumeng8337797.blog.163.com/blog/static/100768914201110185456104/