나는 코드를 다시 작성할 필요 없이(인터페이스, GNOME 대 KDE 등 제외) 모든 Linux 설치에서 실행할 수 있는 응용 프로그램을 작성할 계획입니다.
나는 배포판 간의 차이점에 대한 세부적인 경험이 없으며 프로젝트에 대한 세부 정보를 제공할 수 없습니다. 단지 계획 단계에 들어섰을 뿐이고 커널 내에서 최대한 상호 작용할 것이라는 점을 제외하면 프로젝트에 대한 세부 정보를 제공할 수 없습니다. 가능한 한 컴퓨터 하드웨어를 사용하십시오.
답변1
개발 시 주의할 점
- 표준 빌드 시스템 사용
하드코딩 라이브러리경로 방지pkg-config
대신 외부 패키지 찾기와 같은 도구를 사용하세요 .wxWidgets
애플리케이션에 GUI가 있는 경우 실행 중인 위치에 따라 기본 UI 요소를 렌더링할 수 있는 프레임워크 등을 사용하세요 .- 다른 배포판에서 실행되지 않는 패키지로 종속성을 생성하지 마십시오.
애플리케이션이 모든 배포판에서 작동하는지 완전히 확신하는 유일한 방법은 애플리케이션을 실제로 실행하고 테스트하는 것입니다. 이를 달성하는 한 가지 방법은 각 배포에 대해 가상 머신을 생성하는 것입니다. 이를 위해 VirtualBox를 사용할 수 있습니다. 이 유형의 테스트를 위해 내 상자에는 약 8개의 VM이 있습니다.
모든 배포판은 패키지를 설치하는 데 서로 다른 방법을 사용하기 때문에 응용 프로그램 배포에 대해 너무 많이 일반화할 수는 없다고 생각합니다. 데비안은 deb
Fedora를 사용합니다 rpm
.
답변2
내 2c지만 공식 리포지토리에 패키지와 함께 제공되는 앱이나 소스에서 컴파일된 앱에 대해서는 그다지 골치 아픈 일이 없습니다. 타사 바이너리로 배포된 애플리케이션은 일부 종속성 문제를 겪는 경향이 있습니다. 일반적으로 이러한 문제를 추적하고 수동으로 해결해야 합니다.
따라서 Linux 앱을 출시하려면 패키지로 만들어 공식 저장소에 넣습니다. 그렇지 않으면 소스 코드 형식으로 배포하고 사용자가 자신의 시스템에 맞게 컴파일하도록 할 것입니다.
답변3
비임베디드 Linux용 코드를 작성하는 경우 기억해야 할 가장 중요한 점은 배포판마다 라이브러리 버전 세트가 다르다는 것입니다. 따라서 충분히 오래된 기준선을 설정해야 합니다. 데비안은 업데이트 속도가 느리기 때문에 안정적인 데비안(또는 출시 후 몇 달 이내에 존재하는 오래된 안정)이 합리적인 선택인 경우가 많습니다.
각 배포판을 별도로 패키지해야 합니다. 앱이 오픈 소스이고 완전히 성공했다면 누군가 앱을 가져와 패키징하는 데 도움을 줄 수 있으므로 이는 필수 기술이 아닙니다. 패키징을 제쳐두고, 배포판 간의 차이점은 주로 개발이나 일상적인 사용이 아닌 시스템 관리에 영향을 미칩니다.
커널을 패치하는 경우 더 많은 배포판으로 테스트해야 합니다. 각 배포판에는 자체 패치가 있어 비호환성이 발생할 수 있고 각 배포판은 사용 가능한 사용자 공간 설정의 다른 커널 인터페이스 세트에 의존할 가능성이 높기 때문입니다(예: 다음과 같은 항목이 필요함). 모듈이 아닙니다).
애플리케이션을 임베디드 시스템(여기서는 서버, 데스크탑 또는 랩톱 이외의 시스템을 의미함)에서 실행하려는 경우 위에서 작성한 내용이 올바르지 않다는 점에 유의하십시오. Linux 커널을 실행하더라도 일반적으로 일반적으로 사용되는 라이브러리는 없습니다. , 시작하는...glibc찬성하여 기피했다μClibc,푸드 라이브러리,바이오닉, 등.
답변4
배포판 간의 주요 차이점은 패키징과 애플리케이션 기본값/구성입니다. 결정된 아키텍처에서 실행되는 모든 코드는 해당 아키텍처의 모든 릴리스에서 실행되어야 합니다. 추가적으로 KDE에서 GNOME 응용프로그램을 쉽게 실행할 수 있고 그 반대의 경우도 가능하므로 귀하/귀하의 사용자 기반에 가장 적합한 것을 선택하면 모든 작업이 완료됩니다!