
그만큼 alien 프로그램은 다른 Linux 배포판에서 사용하기 위해 한 Linux 배포판의 설치 패키지를 변환합니다. 그러나 Snap과 Flatpak은 지금 그것을 불필요하게 만들지 않습니까? 일종의, 하지만 그렇게 간단하지 않습니다.
리눅스 패키징 시스템
사용자가 소프트웨어를 설치할 수 있도록 Linux 배포판에는 소프트웨어 패키징 시스템이 필요합니다. 배포가 다른 확립된 배포의 포크인 경우 일반적으로 이전 배포의 패키징 시스템을 고수합니다.
이것이 Fedora가 RPM 패키지(RedHat Package Manager를 나타내는 데 사용됨)를 사용하고 Ubuntu와 그 수많은 자식들이 DEB 패키지를 사용하는 이유입니다. DEB는 단순히 “Debian”의 줄임말입니다. 다른 배포판은 자체 패키지 관리 시스템을 작성하도록 선택합니다. 한 패키지 관리자용으로 패키지된 설치 파일은 다른 패키지 관리자와 호환되지 않습니다.
전통적으로 애플리케이션 개발자는 지원하기로 선택한 모든 형식으로 애플리케이션을 패키징하거나 다양한 Linux 배포판의 유지 관리자와 협력하여 패키징 단계를 전달해야 했습니다. 후자는 사용자의 손에 새 릴리스를 제공하는 데 지연을 가져오고 전자는 개발자에게 많은 추가 작업을 제공합니다.
Snap 및 Flatpak 프로젝트는 패키지 배포의 성배를 제공하려고 합니다. 애플리케이션을 한 번 패키지하고 모든 Linux 배포판에 설치합니다. 물론 원하는 응용 프로그램에 대한 Snap 또는 Flatpak이 있을 수도 있고 없을 수도 있습니다.
Git 리포지토리를 복제하고 소스 코드에서 애플리케이션을 빌드하는 데 익숙하다면 방정식에서 패키징 시스템을 완전히 제거할 수 있습니다. 하지만 모든 사람이 그런 것은 아닙니다. 그리고 Linux에서도 모든 애플리케이션이 오픈 소스가 아니므로 소스에서 모든 것을 구축할 수는 없습니다.
일부 배포판의 유지 관리자는 다른 플랫폼용 패키지를 가져오고 폐쇄 소스 응용 프로그램을 포함하여 자체 패키지 관리 시스템용으로 다시 패키지하는 데 능숙합니다. 그러나 응용 프로그램이 DEB 또는 RPM(큰 두 가지 형식)을 제공하고 다른 모든 사람이 스스로 알아내야 하는 경우가 항상 있습니다.
다음과 같은 프로그램 alien 다른 배포판의 패키지 파일을 Linux 컴퓨터에 필요한 버전으로 변환하는 문제를 해결하기 위해 존재합니다. 이론상으로는 괜찮지만 얼마나 성공적입니까?
외계인 실험
푸딩의 증거는 먹는 것입니다.
우리는 세 가지 다른 RPM을 사용하여 alien DEB로 변환합니다. 그런 다음 Ubuntu에 새로 생성된 DEB를 설치하려고 했습니다.
우리의 모든 테스트 사례에서 다운로드할 수 있는 DEB도 있었기 때문에 우리가 하는 일은 실제로 중복되었습니다. 그러나 Microsoft Edge 브라우저, Atom 편집기 및 Slack과 같은 테스트 응용 프로그램이 alien의 기능을 고려하지 않았기 때문에 기성품 DEB를 무시했습니다.
외계인 설치
Alien을 설치하는 것은 Ubuntu, Fedora 및 Manjaro에서 간단했습니다.
Ubuntu에서는 다음 명령을 사용할 수 있습니다.
sudo apt install alien

Fedora에서는 다음을 입력해야 합니다.
sudo dnf install alien

Manjaro에서 외계인 패키지는 Arch User Repository에 있습니다. 이것은 의미 pacman 볼 수 없으므로 다음과 같은 AUR 도우미 프로그램을 사용해야 합니다. yay. 패키지 이름도 약간 다릅니다.
yay -S alien_package_converter

외계인 사용
사용 alien 변환할 파일과 변환할 형식을 지정합니다. 일반적으로 동일한 파일 이름과 요청한 형식의 확장자를 사용하여 파일을 만듭니다.
사용 alien 패키지 원인을 만들려면 alien 패키지의 버전 번호를 증가시킵니다. 패키지 번호가 파일 이름에 있으면 파일 이름도 변경됩니다.
이들은 형식입니다 alien 에서 로 변환할 수 있습니다.
- -디: Debian, Ubuntu 및 모든 파생 상품의 경우 DEB 파일로 변환합니다.
- -아르 자형: RedHat, CentOS, Fedora용 RPM 파일로 변환합니다.
- -티: EndeavourOS 및 Manjaro와 같은 Arch 및 Arch 기반 시스템의 경우 TAR.GZ 아카이브 파일로 변환합니다.
- -엘: Linux Standard Base 파일인 LSB 파일로 변환합니다. 이것은 교차 배포 패키지 형식을 개발하기 위한 또 다른 이니셔티브였습니다.
- -피: 솔라리스에서 사용하는 형식인 PKG 파일로 변환합니다.
- -to-slp: 단종된 Stampede Linux 배포판에서 사용하는 형식인 SLP 패키지로 변환합니다.
우리가 사용할 형식 옵션은 -d (DEB) DEB 파일로 변환 중입니다. 우리는 또한 사용할 것입니다 -c (스크립트) 옵션은 패키지에 포함된 모든 스크립트를 변환합니다.
마이크로소프트 엣지
Microsoft의 Edge 브라우저용 RPM을 다운로드하고 다음 명령을 실행했습니다.
sudo alien -d -c microsoft-edge-beta-97.0.1072.54-1.x86_64.rpm

없이 -c (스크립트) 옵션에서 DEB 파일을 생성하지 않고 오류를 보고했습니다. 와 더불어 -c 옵션으로 DEB를 생성했습니다.

DEB 파일 이름에는 54-1이 아니라 54-2가 포함되어 있습니다.
스크립트 변환은 잘 끝나지 않을 것입니다. 원래 패키지 파일의 진정한 대상 플랫폼에 고유한 특정 상황 또는 구성에 대해 작성될 수 있습니다. 이 때문에 우리는 큰 희망을 가지지 않았습니다. 그럼에도 불구하고 우리는 DEB를 dpkg 프로그램과 -i (설치) 옵션.
sudo dpkg -i microsoft-edge-beta_97.0.1072.54-2_amd64.deb

작동하지 않았습니다.
또한 DEB 파일을 두 번 클릭하고 Ubuntu 소프트웨어 응용 프로그램을 사용하여 DEB를 설치하려고 했습니다. 흥미롭게도 소프트웨어 응용 프로그램은 DEB가 alien.

그것도 작동하지 않았다. Edge 브라우저가 Ubuntu에 실제로 설치되는지 확인하기 위해 공식 Microsoft Edge DEB 파일을 설치했습니다.
sudo dpkg -i microsoft-edge-beta_97.0.1072.54-1_amd64.deb

문제없이 작동했습니다. Ubuntu에서 실행되는 Microsoft Edge 아래에서 볼 수 있습니다.

원자 편집기
인기 있는 Atom 편집기용 RPM 설치 패키지를 다운로드했습니다. 우리는 같은 것을 사용 alien DEB로 변환하는 명령입니다.
sudo alien -d -c atom.x86_64.rpm

경고나 오류 없이 DEB 파일을 생성했습니다. 우리는 그것을 사용하여 설치했습니다 dpkg 명령 -i (설치) 옵션.
sudo dpkg -i atom_1.58.0-1.1_amd64.deb
![]()
완벽하게 작동했습니다.

Slack 비즈니스 메시징 앱
마지막으로 Slack RPM을 DEB로 변환해 보았습니다.
sudo alien -d -c slack-4.23.0-0.1.fc21.x86_64.rpm

다시 말하지만 이것은 경고와 오류가 없는 DEB를 생성했습니다. 이 설치 명령을 사용했습니다.
sudo dpkg -i slack_4.23.0-1.1_amd64.deb

설치는 완벽하게 작동했습니다. Slack은 아무 문제 없이 실행되었습니다.

혼합 결과
다음과 같은 유틸리티 alien 필연적으로 힘든 싸움을 하고 있다. 모든 경우에 작동할 수 있다는 가능성은 희박하며 이는 우리의 소량의 테스트를 통해 입증되었습니다. 그것이 작동했을 때 그것은 훌륭했습니다.
다른 방법이 없는 상황이라면 alien 시도. 그러나 Snap, Flatpak 또는 소스에서 빌드와 같은 다른 방법을 사용할 수 있는 경우 먼저 시도해 보십시오. 의 작가들조차 alien 한계를 알고 이 경고를 man 페이지:
Alien은 init, libc 또는 시스템 기능에 필수적인 기타 항목과 같은 중요한 시스템 패키지를 대체하는 데 사용해서는 안 됩니다. 이러한 패키지 중 다수는 배포판마다 다르게 설정되며, 다른 배포판의 패키지는 서로 바꿔서 사용할 수 없습니다. 일반적으로 시스템을 손상시키지 않고 패키지를 제거할 수 없다면 외계인 버전으로 교체하려고 하지 마십시오.
그것이 당신을 구덩이에서 빠져 나올 수 있지만 다음으로 전환하기 전에 다른 모든 가능성을 소진했는지 확인하십시오 alien.
하지만, 다른 것이 없을 때, alien 당신을 놀라게 할 수 있습니다.
관련된: Linux의 man 명령을 사용하는 방법: 숨겨진 비밀과 기본 사항








