PKGBUILD를 lib32에 패치하는 방법

PKGBUILD를 lib32에 패치하는 방법

AUR을 사용하여 Arch64 시스템에 Poco 라이브러리를 설치했습니다. 소스가 다운로드되고 컴파일되었으며 패키지가 성공적으로 설치되었습니다. 하지만 이제 32비트 버전의 라이브러리를 컴파일하고 64비트 버전 옆에 설치할 수 있도록 PKGBUILD를 패치해야 합니다.

이것은 원래 PKGBUILD입니다:

# 관리자: Robert Knoll
# 기여자: Rodrigo Grumiche Silva
# 기여자: nozog
# 기여자: davidhjelm
# 기여자: 레이 콜러
# 기여자: Nathan Ove

패키지 이름=poco
패키지ver=1.4.6
pkgrel=1
pkgdesc="네트워크 중심 휴대용 응용 프로그램을 위한 C++ 클래스 라이브러리, 정식 버전"
아치=('i686''x86_64')
url="http://www.pocoproject.org/"
라이센스 = ('사용자 정의:부스트')
의존함=('unixodbc''libmysqlclient''openssl')
makedependents=('gcc' 'make' 'unixodbc' 'libmysqlclient' 'openssl' 'chrpath')
출처=(
  "${pkgname}-${pkgver}-all.tar.gz"::"https://sourceforge.net/projects/${pkgname}/files/sources/${pkgname}-${pkgver}/$ {pkgname}-${pkgver}-all.tar.gz/download"
)
샤256합=(
  'cf8229310f047e731cc6273a8df55e03b76f0ed7d5b5d251f99a0f80f6c2c763'
)

세우다()
{
  cd "${srcdir}/${pkgname}-${pkgver}-all"
  ./configure --prefix=/usr --no-samples --no-tests
  ODBCLIBDIR="/usr/lib"로 만듭니다.
}

팩()
{
  cd "${srcdir}/${pkgname}-${pkgver}-all"
  ODBCLIBDIR="/usr/lib" DESTDIR="${pkgdir}"로 설치
  install -Dm644 'LICENSE' "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
  # 바이너리 파일에서 rpath 정보를 제거합니다.
  chrpath -d "${pkgdir}/usr/bin/cpspc"
  chrpath -d "${pkgdir}/usr/bin/cpspcd"
  chrpath -d "${pkgdir}/usr/bin/f2cpspd"
  chrpath -d "${pkgdir}/usr/bin/f2cpsp"
  # 디버깅 라이브러리 삭제
  rm "${pkgdir}/usr/lib/libPoco"*"d.so"*
}

가장 먼저 시도한 것은 다른 lib32-* AUR 패키지를 살펴보는 것이었지만 해당 플래그를 추가할 수도 없었습니다 -m32.

답변1

당신은해야합니다,

  1. 패키지 이름을 lib32-XX로 변경

  2. 앞에 or 를 넣으세요 export CFLAGS="-m32"(이 경우에는 함수가 됩니다)make./configurebuild()

  3. 그리고 설치 경로를 다음으로 변경해야 합니다. /usr/lib32이 경우 모든 것이 나타날 수 있으므로 ODBCLIBDIR="/usr/lib"시도해 볼 가치가 있습니다.

그리고 무엇이든 설치하기 전에 내용이 올바른지 확인하십시오 pkg.

관련 정보