Build RPM Package of Python
đˇď¸
Photo by Brandable Box on Unsplash
Python ăăăąăźă¸ăŽ RPM ĺă¨ăăă° bdist_rpm ăăăăžăăďźăăŽĺ ´ĺäžĺăăăąăźă¸ă PRM ĺăăĺż
čŚăăăăžăďź
ă¨ăăăă¨ă§ venv ă§ăăćăăŤăăăąăźă¸ĺăăă¨ă㎠spec ăăĄă¤ăŤăŽĺ
厚ăăĄă˘ďź
ă¨ăăăă¨ă§ä¸č¨ă§ăďź
%define venv_name package_name
%define venv_install_dir /opt/%{venv_name}
%define venv_dir %{buildroot}%{venv_install_dir}
%define venv_bin %{venv_dir}/bin
%define __prelink_undo_cmd %{nil}
%undefine __arch_install_post
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
Name: package_name
Version: %{package_version}
Release: 1%{?dist}
Summary: package_summary
URL: https://github.com/hoge/huga
Source0: ./
Requires: python3%description
long_package_desccription%prep
rm -rf %{buildroot}/*%install
install -d %{buildroot}%{venv_install_dir} %{buildroot}/usr/sbin
python3 -m venv %{venv_dir}
%{venv_bin}/python %{venv_bin}/pip install --upgrade pip
%{venv_bin}/python %{venv_bin}/pip install venvctrl
cd %{_topdir}
%{venv_bin}/python setup.py install
ln -sf %{venv_install_dir}/bin/package_name %{buildroot}/usr/sbin/package_name
find %{buildroot} -name "RECORD" -exec rm -rf {} \;
%{venv_bin}/venvctrl-relocate --source=%{venv_dir} --destination=%{venv_install_dir}
find %{venv_dir}/lib -type f -name "*.so" | xargs -r strip%files
%{venv_install_dir}
/usr/sbin/package_name%clean
rm -rf %{buildroot}
čť˝ă解誏ăć¸ă㨠/opt é
ä¸ăŤ pip install ăăăŁăă㨠/usr/sbin é
ä¸ăŤăˇăłăăŞăăŻăŞăłăŻăĺźľăŁăŚăăžăďź
CUI ăăźăŤăŞăŠă§ăăăăăăżăźăłăă¨ćăăžăďź
Cent6 㨠Cent7 ă§ĺăăă¨ăŻç˘şčŞăăŚăăăŽă§ĺ¤§ä¸ĺ¤ŤăŽăŻăďź
ăă¨ĺ˝ăăĺăŞăă§ăă㊠venv ă activate çść
ă§ rpmbuild ăă㨠venv ㎠Python ă§ăăăąăźă¸ăä˝ćăăăăŽă§ćł¨ćăăŚăă ăăďź