기존 DEB 파일을 Centos RPM으로 변경하는 방법

기존 DEB 파일을 Centos RPM으로 변경하는 방법

Ubuntu 12.04에서 Centos 6.6으로 제품을 마이그레이션하고 있습니다. 약 500개의 deb 파일이 있습니다. (예: "dpkg -i libaio1_0.3.109-2ubuntu1_amd64.deb"). Centos에는 이러한 debs가 필요합니다.

  1. Centos에 deb 패키지를 설치할 수 있는 방법이 있습니까?

  2. deb 파일을 Centosable 형식으로 변환하는 안정적인 방법은 무엇입니까? ("외계인" 패키지를 시도했지만 작동하지 않았고 오류가 발생하며 매번 실패했습니다)

  3. 또한 dpkg 명령은 deb 파일에 어떤 영향을 미치나요? rpm 패키지는 사양 파일을 사용하고 rpm 명령을 트리거하여 사용한다는 것을 알고 있습니다. 그러나 .debs에는 유사한 파일이 없습니다.

답변1

Alien에서 발생하는 문제는 Alien의 버그나 제한 때문이 아니라 접근 방식에 내재된 문제일 가능성이 높습니다. deb 패키지를 rpm 패키지로 변환하는 것은 쉽고 Alien은 훌륭한 작업을 수행합니다. 변환하다우분투용 패키지가 되다CentOS용 패키지훨씬 더 어렵습니다. 이는 파일을 다른 형식으로 다시 패키징하는 것뿐만 아니라 CentOS에서 예상하는 디렉터리로 파일을 이동하고, CentOS에서 작동하도록 구성 파일을 수정하고(예: 다른 초기화 시스템 사용), 다음 패키지에 대한 종속성을 선언하는 것을 의미합니다. : 이름이 다릅니다(또는 배포판에 전혀 존재하지 않을 수도 있습니다).

500개의 패키지를 사용하면 몇 가지 어려운 상황에 직면할 수 있습니다. 더미 패키지 만들기, 심볼릭 링크 및 패키징 스크립트 만들기, 시스템 구성 조정 등의 노력을 기울일 가치가 있는지 여부는 귀하에게 달려 있지만 저는 확실히 다른 솔루션을 찾을 것입니다. 특히 데비안 바이너리는 CentOS의 바이너리와는 다른 라이브러리 버전에 대해 컴파일될 가능성이 높습니다.

CentOS 시스템에서 데비안용으로 구축된 프로그램을 실행하려는 경우 노동 집약적이지 않은 솔루션은 데비안을 chroot(다른 데비안 버전에 데비안을 설치하는 방법에 대한 이 가이드호스트 측에 대한 종속성이 많지 않기 때문에 유용할 수 있습니다.)

"올바른" CentOS 패키지를 갖고 싶다면 데비안 패키지를 변환하는 것보다 소스에서 빌드하는 것이 훨씬 쉽습니다.

답변2

aliendeb변환 또는 반전을 위한 도구입니다 rpm... 예:

sudo alien -r /var/cache/apt/archives/alien_8.90_all.deb /home/ubuntu/

답변3

간단한 변환으로 문제가 해결될 것이라고 생각한다면 주의하십시오. 파일 시스템 레이아웃의 큰 차이로 인해 deb를 RPM으로 또는 그 반대로 변환하는 것은 미국인에게 프랑스 옷을 입히고 그가 섞일 것이라고 기대하는 것과 같습니다. 파일 시스템 레이아웃, 커널, 라이브러리 및 튜닝은 문화적 차이와 같으며 단순히 원활하게 맞출 수는 없습니다.

FPM은 무언가를 제대로 패키징하고 싶지 않고, 페이로드 전달 방법만 필요하고, 소스 RPM을 전혀 얻지 못하는 경우에 유용합니다. FPM은 파일 시스템에 스프레이 페인팅한 후에 무언가를 패키징하기 때문에(make install 또는 유사한 2000년 이전 "설치" 방법) 모든 고유한 이점을 갖춘 깨끗하고 격리된 위치에 패키징하지도 않습니다.

궁극적으로 그냥 패키지화하면 약간의 시간이 절약되고 프로세스, 방법 및 논리에 대해 더 많이 배울 수 있습니다. "작은" 시간은 90일과 91일의 차이와 같지만, 배송 중 예상치 못한 문제로 인해 작은 변경이 필요한 배송 후 "2일차" 문제는 쉽게 해결됩니다.

fpm이나 다른 해킹을 고려하기 전에 엔터프라이즈 Linux에서 패키징을 배울 수 없거나 배울 수 없다면 누군가를 고용하십시오. 올바른 괴상한 사람은 그것을 올바르게 할 것이며, 어떤 일이 특정 방식으로 수행되는 방법과 이유를 알지 못하더라도 최소한 신속하게 조정할 수 있는 SPEC 파일을 갖게 될 것입니다.

답변4

패키지를 로 변환을 확인하세요 fpm. 와 사이의 변환을 시도하지 않았습니다.debrpmdebrpm

https://www.digitalocean.com/community/tutorials/how-to-use-fpm-to-easily-create-packages-in-multiple-formats

관련 정보