LINUX.ORG.RU

Сборка rpm пакета из одного Python скрипта с зависимостями

 , , ,


0

1

Хочу установить файл в /usr/bin, но скрипт неизвестно где ожидает найти этот файл. Файл simple-1.0.tar.gz в котором директория simple-1.0 в которой файл simple.py находится в SOURCES

Вопрос: где скрипт ожидает файл simple.py и как ему его указать?

Summary:         Simple python script
License:         MIT
Name:            simple
Version:         1.0
Release:         1%{?dist}
Source0:         %{name}-%{version}.tar.gz
Group:           Application/Multimedia 
BuildRoot:       %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildArch:       noarch
BuildRequires:   python-devel
Requires:        python
Requires:        python-requests

%description
Simple description for simple python script.

%prep
%setup -q

%install
rm -rf $RPM_BUILD_ROOT
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py

%clean
rm -rf $RPM_BUILD_ROOT

%files
/usr/bin/simple.py

%changelog
* Fri Jul 27 2018 Ycewc Rvdfvf <sdvsdvsdv@ssdvsdvdv.ru>
- test changelog

Это лог

#!/bin/sh

  RPM_SOURCE_DIR="/home/builder/rpmbuild/SOURCES"
  RPM_BUILD_DIR="/home/builder/rpmbuild/BUILD"
  RPM_OPT_FLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables"
  RPM_ARCH="i386"
  RPM_OS="linux"
  export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
  RPM_DOC_DIR="/usr/share/doc"
  export RPM_DOC_DIR
  RPM_PACKAGE_NAME="simple"
  RPM_PACKAGE_VERSION="1.0"
  RPM_PACKAGE_RELEASE="1.el6"
  export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
  LANG=C
  export LANG
  unset CDPATH DISPLAY ||:
  RPM_BUILD_ROOT="/home/builder/rpmbuild/BUILDROOT/simple-1.0-1.el6.i386"
  export RPM_BUILD_ROOT

  PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:/usr/share/pkgconfig"
  export PKG_CONFIG_PATH

  set -x
  umask 022
  cd "/home/builder/rpmbuild/BUILD"
    [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"
    mkdir -p `dirname "$RPM_BUILD_ROOT"`
    mkdir "$RPM_BUILD_ROOT"

cd 'simple-1.0'
LANG=C
export LANG
unset DISPLAY

rm -rf $RPM_BUILD_ROOT
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py

    /usr/lib/rpm/check-rpaths   /usr/lib/rpm/check-buildroot

    /usr/lib/rpm/redhat/brp-compress 
    /usr/lib/rpm/redhat/brp-strip /usr/bin/strip 
    /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip 
    /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump 
    /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 
    /usr/lib/rpm/redhat/brp-python-hardlink 
    /usr/lib/rpm/redhat/brp-java-repack-jars 
★★★★★

Последнее исправление: sniper21 (всего исправлений: 1)

Хочу установить файл в /usr/bin

install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py

%files
/usr/bin/simple.py

Ну так все правильно сделал.

где скрипт ожидает файл simple.py и как ему его указать?

О каком скрипте речь?

anonymous
()
Ответ на: комментарий от anonymous

О каком скрипте речь?

О rpmbuild скрипте который выполняет spec.

RPM пакет не создается. и в логе он пишет что не может найти simple.py

sniper21 ★★★★★
() автор топика
Последнее исправление: sniper21 (всего исправлений: 2)
Ответ на: комментарий от sniper21

Собирается с таким:

Summary:         Simple python script
License:         MIT
Name:            simple
Version:         1.0
Release:         1%{?dist}
Source0:         %{name}-%{version}.tar.gz
Group:           Application/Multimedia 

BuildArch:       noarch
Requires:        python
Requires:        python-requests

%description
Simple description for simple python script.

%prep
%autosetup -n %{name}-%{version}

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/bin/
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py

%clean
rm -rf $RPM_BUILD_ROOT

%files
/usr/bin/simple.py

%changelog
* Fri Jul 27 2018 Ycewc Rvdfvf <sdvsdvsdv@ssdvsdvdv.ru>
- test changelog

anonymous
()
BuildRoot:       %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:   python-devel

1. Левый BuildRoot совершенно лишнее.
2. У тебя тупое копирование файла, никакой сборки. Соотвественно, указывать как зависимость сборки python-devel, совершенно лишнее.

anonymous
()
Ответ на: комментарий от sniper21

Так то в системе, а тебе нужно в buildroot:
/home/builder/rpmbuild/BUILDROOT/simple-1.0/usr/bin

anonymous
()
Ответ на: комментарий от system-root

Ну да, судя по разделу Our Users, вменяемые проекты это не рискуют использовать.

anonymous
()
Ответ на: комментарий от system-root

Смысл то у меня не просто сделать пакеты со своим софтом, но ещё и понять как это работает «голяком».

sniper21 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.