2011-08-19 26 views
10

Tôi đang sử dụng setuptools Python cho việc xây dựng một gói. Tôi muốn đặt tên cho rpm được xây dựng từ tùy chọn bdist_rpm khác với tên gói Python do một số hạn chế đặt tên.Thiết tên RPM Package trong bdist_rpm

Có thể thực hiện trong setup.cfg trong phần [bdist_rpm] không?

Trả lời

2

Vâng nó thực sự là một hơi phi tiêu chuẩn và do đó không được hỗ trợ trực tiếp. Tuy nhiên bạn có thể làm python setup.py bdist_rpm --spec-only và điều này sẽ tạo ra một file spec bên dist/tên project.spec, bắt đầu như thế này:

%define name [name of your pkg as defined in setup.py] 
%define version [version of your pkg] 
%define unmangled_version [version of your pkg] 
%define release 1 

Summary: PyQt4 application to download trailers from www.apple.com/trailers 
Name: %{name} # THIS IS WHAT YOU WANT TO CHANGE 
Version: %{version} 
Release: %{release} 
Source0: %{name}-%{unmangled_version}.tar.gz 

Để thành công xây dựng rpm từ đây bạn cần phải:

  1. đổi tên spec nộp tới [newname] .spec
  2. thay đổi mỗi sự xuất hiện của% {name} với [newname]
  3. rpmbuild -ba [newname.spec] (sau khi đặt tập tin trong dirs nơi rpmbuild sẽ tìm thấy chúng)

tôi chắc chắn bạn có thể tự động này một cách nào đó nếu bạn thực sự muốn

+1

câu trả lời của bạn là một chút không đầy đủ. "sau khi đặt các tập tin trong thư mục mà rpmbuild sẽ tìm thấy chúng" không giải thích cách và nơi chạy lệnh rpmbuild để kết thúc quá trình. –

+0

Nó muốn được tiện dụng để lưu ý rằng bạn thay đổi 'Tên: 'thay vì'% xác định name' vì xác định là apt để sử dụng trong tên gói nguồn là tốt, và các gói nguồn sẽ (có thể) có "thường xuyên "tên trong tên tệp, không phải giá trị được ghi đè (như được minh họa trong ví dụ được bao gồm). Đó là lý do tại sao bạn không thực sự thay đổi mọi sự xuất hiện - bạn chỉ cần thay đổi một cá thể 'Tên:'. – dannysauer

2

Công cụ fpm làm cho dễ dàng để tạo ra các gói RPM và thay đổi tên hoặc thông số khác. Theo mặc định, fpm làm RPM với "tên tiền tố python-, nhưng tên gói có thể được thiết lập với -n tham số Ví dụ:.

fpm -s python -t rpm -n my_package_name <python-source-library>/setup.py 
1

Python 2.7+

According to the docs, python setup.py bdist_rpm --name="new-package-name" sẽ hoạt động.

Điều này dường như không đúng với python-2.6, vì bạn sẽ nhận được error: option --name not recognized lỗi khi cố gắng chạy lệnh.

Python 2.6

Tôi đã tìm thấy rằng việc chỉnh sửa setup.py công trình:

(...) 
setup(
    name = 'new-package-name', 
    description = "Python package that does the thing", 
(...) 

Sau đó chỉ cần chạy python setup.py bdist_rpm và rpm sẽ có tên mới.

Các vấn đề liên quan