CentOS 5.3 に Django-1.1 と MySQL-Python-1.2.2 をインストールする
2009/10/09 セキュリティアップデートの Django-1.1.1 がリリースされました。
CentOS 5.3 に Django-1.1.1 をインストールする - forest book
Django-1.1 がリリースされました。
以下、CentOS 用のアップデートパッケージの作成方法になります。ご参考まで。
どのディストリビューションでビルドしたかが分かるように %dist マクロを定義します。
# vi /etc/rpm/macros.centos ### distribution macros %dist .centos
Fedora EPEL の Django-1.0.2-2.el5.src.rpm を用いて Django-1.1 パッケージを作成します。
必要なパッケージやソースをダウンロードします # wget http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/epel/5/SRPMS/Django-1.0.2-2.el5.src.rpm # wget http://www.djangoproject.com/download/1.1/tarball/ Django-1.1 用の spec ファイルに修正して、適切なディレクトリにソースを配置します。 # rpm -ivh Django-1.0.2-2.el5.src.rpm # cd /usr/src/redhat/SOURCES/ # mv ~/Django-1.1.tar.gz . # cd /usr/src/redhat/SPECS/ # cp -p Django.spec Django.spec.orig # vi Django.spec # diff -u Django.spec.orig Django.spec --- Django.spec.orig 2009-08-06 09:29:57.000000000 +0900 +++ Django.spec 2009-08-06 10:13:11.000000000 +0900 @@ -2,14 +2,14 @@ %{!?pyver: %define pyver %(%{__python} -c "import sys ; print sys.version[:3]")} Name: Django -Version: 1.0.2 -Release: 2%{?dist} +Version: 1.1 +Release: 1%{?dist} Summary: A high-level Python Web framework Group: Development/Languages License: BSD URL: http://www.djangoproject.com/ -Source0: http://media.djangoproject.com/releases/%{version}/Django-%{version}-final.tar.gz +Source0: http://media.djangoproject.com/releases/%{version}/Django-%{version}.tar.gz # stub simplejson module that imports the system version Source1: simplejson-init.py BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -40,7 +40,7 @@ %prep -%setup -q -n %{name}-%{version}-final +%setup -q -n %{name}-%{version} # remove bundled simplejson cd django/utils/simplejson/ rm -rf * @@ -82,7 +82,7 @@ %attr(0755,root,root) %{python_sitelib}/django/bin/*-messages.py %attr(0755,root,root) %{python_sitelib}/django/bin/daily_cleanup.py %attr(0755,root,root) %{python_sitelib}/django/bin/django-admin.py -%exclude %{_bindir}/django-admin.py? +#%exclude %{_bindir}/django-admin.py? %{python_sitelib}/django %if 0%{?fedora} >= 9 %{python_sitelib}/*.egg-info パッケージをビルドします # rpmbuild -ba Django.spec ~~ sinip 書き込み完了: /usr/src/redhat/SRPMS/Django-1.1-1.centos.src.rpm 書き込み完了: /usr/src/redhat/RPMS/noarch/Django-1.1-1.centos.noarch.rpm 書き込み完了: /usr/src/redhat/RPMS/noarch/Django-doc-1.1-1.centos.noarch.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.14446 + umask 022 + cd /usr/src/redhat/BUILD + cd Django-1.1 + rm -rf /var/tmp/Django-1.1-1.centos-root-root + exit 0 パッケージをインストールします # cd ../RPMS/noarch/ # rpm -Uvh Django-1.1-1.centos.noarch.rpm Django-doc-1.1-1.centos.noarch.rpm 準備中... ########################################### [100%] 1:Django ########################################### [ 50%] 2:Django-doc ########################################### [100%]
パッケージを作成していて気付いたのですが、Fedora EPEL のパッケージでは、Django 本体に組み込まれている simplejson のコードを削除して、Python 標準ライブラリの simplejson を使用するように修正されています。
# cat /usr/src/redhat/SOURCES/simplejson-init.py r""" Stub simplejson library that just imports the version provided by the system """ from simplejson import *
同様の手順で MySQL-python パッケージを作成します。Django の依存関係で MySQL-python-1.2.2 以上を要求しますが、なぜか最新パッケージがまだ提供されていないようなので作成してみました。setup.py に "--optimize=1" オプションを与えると、.pyo ファイルを作成してくれるようです。
必要なパッケージやソースをダウンロードします # wget http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/5/os/SRPMS/MySQL-python-1.2.1-1.src.rpm # wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download MySQL-python-1.2.2 用の spec ファイルに修正して、適切なディレクトリにソースを配置します。 # rpm -ivh MySQL-python-1.2.1-1.src.rpm # cd /usr/src/redhat/SOURCES/ # mv ~/MySQL-python-1.2.2.tar.gz . # cd /usr/src/redhat/SPECS/ # cp -p MySQL-python.spec MySQL-python.spec.orig # vi MySQL-python.spec # diff -ur MySQL-python.spec.orig MySQL-python.spec --- MySQL-python.spec.orig 2009-08-06 11:06:43.000000000 +0900 +++ MySQL-python.spec 2009-08-06 11:10:12.000000000 +0900 @@ -3,8 +3,8 @@ Summary: An interface to MySQL Name: MySQL-python -Version: 1.2.1 -Release: 1 +Version: 1.2.2 +Release: 1%{?dist} License: GPL Group: Development/Libraries Source0: http://prdownloads.sourceforge.net/mysql-python/MySQL-python-%{version}.tar.gz @@ -45,7 +45,7 @@ rm -rf $RPM_BUILD_ROOT export libdirname=%{_lib} -python setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES +python setup.py install --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES --optimize=1 %clean rm -rf $RPM_BUILD_ROOT @@ -60,6 +60,10 @@ %dir /usr/%{_lib}/python%{pyver}/site-packages/MySQLdb/constants パッケージをビルドします # rpmbuild -ba MySQL-python.spec ~~ sinip 書き込み完了: /usr/src/redhat/SRPMS/MySQL-python-1.2.2-1.centos.src.rpm 書き込み完了: /usr/src/redhat/RPMS/i386/MySQL-python-1.2.2-1.centos.i386.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.17584 + umask 022 + cd /usr/src/redhat/BUILD + cd MySQL-python-1.2.2 + rm -rf /var/tmp/MySQL-python-buildroot + exit パッケージをインストールします # rpm -ivh ../RPMS/i386/MySQL-python-1.2.2-1.centos.i386.rpm 準備中... ########################################### [100%] 1:MySQL-python ########################################### [100%]
リファレンス:
Django 1.1 release notes | Django documentation | Django
「Django 1.1」リリース データベース連係やテスト周りの機能を強化:CodeZine
Re: [Distutils] bdist_rpm fails due to bytecompiled modules