操作
機能 #53
完了CentOS 6用のpython pywinrmパッケージのRPM作成
開始日:
2016/01/28
期日:
進捗率:
100%
予定工数:
説明
pythonのパッケージ pywinrm は、CentOSの公式リポジトリにもEPELにも、その他のメジャーなRPMリポジトリにも見当たらない。
そこで、PythonモジュールからRPMパッケージを作成する。
状況
- 試行1
pythonの標準機能? bdist_rpmで、isodate RPMができた。
ただし、RPMパッケージ名がCentOS/RHELの慣習から逸脱 - 試行2
bdist_rpmに--spec-onlyオプションを指定して生成されるSPECファイルを修正し、python-pywinrmという名前でPRMができた。
ここで、isodateとxmltodicはEPELリポジトリに存在することを知った・・・
高橋 徹 さんが9年以上前に更新
- ステータス を 新規 から 進行中 に変更
- 進捗率 を 0 から 50 に変更
インターネットに接続されたマシン上で、python の pywinrm パッケージをダウンロードする。
ダウンロードに使用するpipのインストール
# yum install python-setuptools # easy_install pip
pywinrmとその依存パッケージのダウンロード
work$ pip install -d . work$ ls isodate-0.5.4.tar.gz pywinrm-0.1.1.tar.gz xmltodict-0.9.2.tar.gz
pywinrm が、isodateとxmltodictに依存している。
高橋 徹 さんが9年以上前に更新
isodateのRPM化(試行1)¶
work$ tar xvzf isodate-0.5.4.tar.gz work$ cd isodate-0.5.4 isodate-0.5.4$ python setup.py bdist_rpm isodate-0.5.4$ ls dist isodate-0.5.4-1.noarch.rpm isodate-0.5.4-1.src.rpm isodate-0.5.4.tar.gz isodate-0.5.4$
できました!
が、RPMパッケージ名がisodateとなっています。CentOS/RHELでは、pythonパッケージのRPMパッケージ名はpython-isodateのように接頭辞python-を付けるのが慣習です。
高橋 徹 さんが9年以上前に更新
- 説明 を更新 (差分)
isodateのRPM化(試行2)¶
SPECファイルを生成し、それを修正してRPMパッケージを作成する。
isodate-0.5.4$ python setup.py bdist_rpm --spec-only isodate-0.5.4$ ls dist isodate.spec
生成されたSPECファイルとパッケージのtarボールをRPMビルド作業用ディレクトリへコピー
isodate-0.5.4$ cp dist/isodate.spec ~/rpmbuild/SPECS/python-isodate.spec isodate-0.5.4$ cp ../isodate-0.5.4.tar.gz ~/rpmbuild/SOURCES
SPECファイルの修正
@@ -1,14 +1,14 @@
-%define name isodate
+%define original_name isodate
%define version 0.5.4
%define unmangled_version 0.5.4
%define unmangled_version 0.5.4
%define release 1
Summary: An ISO 8601 date/time/duration parser and formatter
-Name: %{name}
+Name: python-%{original_name}
Version: %{version}
Release: %{release}
-Source0: %{name}-%{unmangled_version}.tar.gz
+Source0: %{original_name}-%{unmangled_version}.tar.gz
License: BSD
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
@@ -271,7 +271,7 @@
%prep
-%setup -n %{name}-%{unmangled_version} -n %{name}-%{unmangled_version}
+%setup -n %{original_name}-%{unmangled_version}
%build
python setup.py build
RPMビルドの実行
~$ rpmbuild -ba ~/rpmbuild/SPECS/python-isodate.spec :
できた!
- rpmbuild/RPMS/noarch/python-isodate-0.5.4-1.noarch.rpm
高橋 徹 さんが9年以上前に更新
xmltodictのRPM化¶
同様に実施
@@ -1,14 +1,14 @@
-%define name xmltodict
+%define original_name xmltodict
%define version 0.9.2
%define unmangled_version 0.9.2
%define unmangled_version 0.9.2
%define release 1
Summary: Makes working with XML feel like you are working with JSON
-Name: %{name}
+Name: python-%{original_name}
Version: %{version}
Release: %{release}
-Source0: %{name}-%{unmangled_version}.tar.gz
+Source0: %{original_name}-%{unmangled_version}.tar.gz
License: MIT
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
@@ -21,7 +21,7 @@
UNKNOWN
%prep
-%setup -n %{name}-%{unmangled_version} -n %{name}-%{unmangled_version}
+%setup -n %{original_name}-%{unmangled_version}
%build
python setup.py build
高橋 徹 さんが9年以上前に更新
pywinrmのRPM化¶
同様に実施
@@ -1,13 +1,13 @@
-%define name pywinrm
+%define original_name pywinrm
%define version 0.1.1
%define unmangled_version 0.1.1
%define release 1
Summary: Python library for Windows Remote Management
-Name: %{name}
+Name: python-%{original_name}
Version: %{version}
Release: %{release}
-Source0: %{name}-%{unmangled_version}.tar.gz
+Source0: %{original_name}-%{unmangled_version}.tar.gz
License: MIT license
Group: Development/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
@@ -21,7 +21,7 @@
UNKNOWN
%prep
-%setup -n %{name}-%{unmangled_version}
+%setup -n %{original_name}-%{unmangled_version}
%build
python setup.py build
操作