내 버전의 RHEL/EPEL/CentOS/Fedora에서 작동하는 패키지가 필요하지만 다른 버전의 Redhatoids에서만 작동합니다.

내 버전의 RHEL/EPEL/CentOS/Fedora에서 작동하는 패키지가 필요하지만 다른 버전의 Redhatoids에서만 작동합니다.

일부 Fedora 패키지 소프트웨어를 CentOS로 백포트하거나, 이전 버전의 EPEL에서 Fedora로 또는 그 반대로 무언가를 포워딩하는 상황에 자주 직면합니다.

최소한의 노력으로 어떻게 이 작업을 수행할 수 있습니까?

답변1

본질적으로 distgit의 목적은 패키지 사양을 조정하고 사용 가능하게 유지하는 것입니다. 그럼, 사용해 봅시다.

패키지를 빌드하려면 시스템을 설정해야 합니다.

# only on CentOS and other RHEL derivatives:
sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled powertools
sudo dnf install --refresh epel-release 
# all:
sudo dnf install --refresh fedpkg 'dnf-command(builddep)' git

먼저 패키지를 찾으세요.https://src.fedoraproject.org/browse/projects/. 나는 guile22예를 들어 사용하고 있습니다 :

좋습니다. 이제 패키지를 구축하는 데 필요한 모든 것이 준비되었습니다! 우리가 가자guile22분산 사이트Clone 버튼을 검색하고 클릭하여 찾은 것처럼 URL이 표시됩니다 https://src.fedoraproject.org/rpms/guile22.git.

pkgname=guile22
# clone the distgit
git clone "https://src.fedoraproject.org/rpms/${pkgname}.git"
cd "${pkgname}"

## Ask dnf to install build dependencies
### if this fails, read diligently – packages might have changed names and you might
### need to slightly edit the .spec file, or you might need to build the missing 
### dependencies yourself, just like you're building this package, before you can
### continue.
sudo dnf builddep "${pkgname}.spec"

## build
### `fedpkg local` executes the build "unisolatedly" on this very distro.
### Instead of that, you could also omit the `dnf builddep` step above and do a
### `fedpkg mockbuild`. This will take a bit longer, as it needs to set up a clean
### build chroot. Often it's worth it.
fedpkg local
## install
### `fedpkg local` put the RPMs into $arch subdirs, so on my machine those are `x86_64`
### and `noarch`, but if you build for e.g. ppc64, that might be different.
sudo rpm -i x86_64/${pkgname}-*.rpm

그게 다야!

관련 정보