CentOS 6.4 x64のRPMパッケージを収集します

どなたでも大歓迎です! :)



CentOS 6.4 x64でRPMパッケージを作成した経験を共有したいと思います。 私はこのシステムが好きです。すべてがシンプルで、たくさんの情報があります。 そして、ほとんどのサービス(小規模なホスティング会社)にインストールされています。



稼働中のサーバーでは、パッケージをビルドしないでください。なぜ追加のパッケージが必要なのですか? 仮想マシンを作成し、そこで実行します。



今日は、1日前にリリースされたPHP-5.5.4を収集します。 なぜPHPなのか? そのアセンブリで私が最も苦しんだのは、通常の仕様ファイルがなかったため、エラーが発生したためです(何かが補足または修正されたとき)。 要するに、私は悲しみを彼と一週間以上飲みました。 そして、苦痛の中で、PHP用のパッケージを正しくコンパイルする方法が決定されました。



まあ、親愛なる皆さん、要点です!



1. OSをインストールしました。 すべてのインストールおよびアップグレードアクションがルートとして実行されることを考慮しているため、sudoは使用しません。 それでは、アップグレードして再起動しましょう。

yum update -y && shutdown -r now
      
      







2.追加のリポジトリ接続します。 私はこれをいくつか使用します:



 rpm -ivh --nosignature http://rpm.axivo.com/redhat/axivo-release-6-1.noarch.rpm && rpm -ihv http://centos.alt.ru/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm
      
      







やる

 yum update -y
      
      







3.ここですべての良いものをインストールします。それなしではPHPをビルドしません。

最初にCentALTから:

 yum install -y libcurl-devel pam-devel sqlite-devel libedit-devel libtool-ltdl-devel libc-client-devel --enablerepo=CentALT
      
      







次に、Axivoから:



 yum -y install postgresql-devel unixODBC-devel net-snmp-devel libxslt-devel libxml2-devel aspell-devel enchant-devel libicu-devel mariadb-server mariadb-devel t1lib-devel libjpeg-devel libpng-devel freetype-devel libXpm-devel libvpx-devel gmp-devel tokyocabinet-devel libmcrypt-devel libtidy-devel freetds-devel recode-devel --enablerepo=axivo
      
      







それでは、opensslのバージョンを確認しましょう。



 openssl version
      
      







1.0.1eでない場合、これを行います:



 yum install -y openssl openssl-devel--enablerepo=axivo
      
      







次に、直接アセンブリに必要なものをインストールします。



 yum groupinstall -y "Development Tools" && yum install rpmdevtools
      
      







4.次に、アセンブリに必要な環境を作成します。 以下のアクションは、ルートからではなく、通常のユーザーから実行する必要があります。これは非常に重要なポイントです。



このようにします:

 rpmdev-setuptree
      
      







このコマンドは、次のサブディレクトリを持つディレクトリを作成します。

 + rpmbuild -BUILD -BUILDROOT -RPMS -SOURCES -SPECS -SRPM
      
      







ここで、 BUILDはソースコードとともにアーカイブからファイルを解凍します。 RPMSにはrpmパッケージが含まれます。 ここで、 SOURCESはすべてのソースコードを設定とともに配置します。 SPECS-アセンブリの指示を含むspecファイルが含まれています。 これは、パッケージを構築するための最も重要な部分です。 SRPM- * .src.rpmファイルを含む-rpmパッケージのソース。 将来のパッケージに何かを追加/削除する必要があるrpmパッケージと一緒に配布できます。 仕様ファイル、アセンブリのソースが含まれています。



スペックファイル全体を1,200行以上アップロードしないため、ここからアーカイブをダウンロードすることをお勧めします

rpmパッケージphp-5.4のソースからspecファイルをやり直すだけでいいと思ったのですが、そこにありました! 自分で解決するのが難しい落とし穴の多く。 Remiリポジトリで必要なsrc.rpmバージョン5.5を見つけて、新しいバージョン用に再編集しました。 そして、すべてうまくいきました。



したがって、すべてのソースをダウンロードし、ホームディレクトリに展開するとします。 次に、SPECディレクトリに移動し、次のコマンドを実行して、src.rpmとともにrpmパッケージをビルドします。

 rpmbuild -ba php55.spec
      
      







アセンブリは行きました。 コンピューターの能力によっては時間がかかります。 約40分かかりました。



PHPの新しいバージョンがリリースされた場合(5.5としましょう。*)、ソースフォルダーにbz2アーカイブをダウンロードし(これはSOURCESです)、ファイルSPECS / php55.specを編集します。 「バージョン:5.5.4」を目的のバージョンに変更します。 そして、あなたは新しいものを集めることができます。



すでに収集されたパッケージはここからダウンロードできます



PSサーバーのいずれかでバージョン5.4から5.5.4に更新しても、何も悪いことは起こりませんでした。 クライアントが持っていた唯一のものは「Depraceted:preg_replace()/ e」で、 preg_replace()/ epreg_replace_callback()に置き換えることで簡単に修正されました。



すべてにクリエイティブなウズベク語:)



All Articles