우리는 임베디드 x86 컴퓨터에서 자체 애플리케이션을 실행하기 위해 Alpine Linux용 자동 설치 프로그램을 만들고 싶었습니다. 우리의 애플리케이션 설정에는 다운로드 가능한 미디어에 없는 패키지가 필요하며, 이를 독립적으로 오프라인으로 실행해야 합니다. 필요한 기능을 구현했지만 이를 위해서는 USB 스틱에 "기본" 및 "커뮤니티" 저장소가 있어야 합니다.
지금까지 ISO 모드에서 Rufus를 사용하여 ISO 이미지를 USB 스틱에 구운 다음(쓰기 가능하게 만들기) 이미지를 USB 스틱에 rsync하고(에) 수동으로 이 디렉터리를 필요에 따라 /media/usb/alpine
추가함으로써 이 문제를 해결했습니다 . /etc/apk/repositories
이것은 훌륭하게 작동합니다.
불행하게도 이 다운로드 용량은 거의 20GB에 달합니다. 이는 현재 사용 가능한 USB 스틱에서 USB 스틱에 수동으로 복사하는 단계에 오랜 시간(현재 2시간)이 걸린다는 것을 의미합니다. SSD USB 디스크는 약 20분 정도 소요됩니다.
setup-apkcache
그래서 저는 100MB 미만의 패키지만 필요하다는 것을 찾아봤지만, setup-disk
"sys" 모드(무대 뒤에서 실행)로 로컬 하드 드라이브에 설치하는 실험에서는 lbu package -
캐시에 있는 해당 패키지를 사용하지 않는다는 것을 발견했습니다 . 하지만 모든 패키지는 해당 목록에 나열된 저장소 중 하나에서 찾을 수 있을 것으로 예상합니다 /etc/apk/repositories
.
APK 캐시를 사용하는 것이 올바른 접근 방식인가요? 아니면 제가 잘못된 나무를 찾고 있는 걸까요?
답변1
나중에 참고할 수 있도록 SSE와 TSLIB 없이 Qt5를 다시 컴파일해야 하는 상황이 발생했기 때문에 Alpine Linux aports 저장소를 포크하고 3.14-stable 브랜치에서 로컬 브랜치를 만들어 도커 이미지에서 패키지를 다시 빌드했습니다.
이 도커 이미지는 ISO 구축에도 매우 적합한 것으로 나타났습니다. 필요에 따라 추가 패키지를 scripts/mkimg.XXX.sh
조정 하고 추가하기 위한 새 구성 파일을 생성함으로써 Gitlab에서 수정된 패키지로 새 ISO를 몇 분 안에 빌드하고 아티팩트에 대한 공식 패키지 저장소의 고정된 내부 이미지를 사용하여 저장할 수 있습니다. 이로써 우리 목적에 충분히 빠른 620MB ISO가 생성되었습니다.profile_extended
$apks
시간이 더 있으면 필요한 패키지를 기반으로 Alpine Linux 패키지로 사용자 지정 페이로드를 생성하므로 빌드 스크립트에 해당 패키지를 추가하고 종속성을 투명하게 가져옵니다. 또한 PXE 네트워크에서 부팅할 수 있는 버전도 개발 중입니다. 다음번...
편집: Alpine Technical Steering Committee는 2022년 1월에 "최선의 노력을 바탕으로 i586을 계속 사용하기로 결정했습니다. 플랫폼이 실제로 i586을 올바르게 구현해야 지원된다는 점을 명시하고(예: Vortex86 없음) 업스트림이 i686만 지원하는 경우 일부 패키지에는 i686이 필요할 수 있습니다( 예를 들어 JIT가 있는 경우)." 특정 사용법의 경우 이는 별도의 컴파일 트리를 계속 사용해야 함을 의미합니다.
https://gitlab.alpinelinux.org/alpine/tsc/-/blob/master/mines/2022-01-11.md