FreeBSD 패키지

FreeBSD 패키지

저는 새로운 Freebsd 사용자입니다. 을(를) 설치하려고 하면 gnu m4-1.4.18평가 테스트 섹션에서 평가 실패가 발생합니다.

Checking ./189.eval
@ ../doc/m4.texi:6405: Origin of test
./189.eval: stdout mismatch
--- m4-tmp.2536/m4-xout 2017-12-18 22:11:42.931036000 +0000
+++ m4-tmp.2536/m4-out  2017-12-18 22:11:42.928582000 +0000
@@ -2,8 +2,8 @@

 1
 1
-overflow occurred
--2147483648
+
+2147483648
 0
 -2
 -2

189.eval의 내용은 다음과 같습니다.

dnl @ ../doc/m4.texi:6405: Origin of test
dnl @ expected status: 0
dnl @ extra options:
dnl @ Copyright (C) 2006, 2007, 2008, 2009 Free Software
dnl @ Foundation, Inc.
dnl @ This file is free software; the Free Software Foundation
dnl @ gives unlimited permission to copy and/or distribute it
dnl @ with or without modifications, as long as this notice
dnl @ is preserved.
define(`max_int', eval(`0x7fffffff'))
dnl @result{}
define(`min_int', incr(max_int))
dnl @result{}
eval(min_int` < 0')
dnl @result{}1
eval(max_int` > 0')
dnl @result{}1
ifelse(eval(min_int` / -1'), min_int, `overflow occurred')
dnl @result{}overflow occurred
min_int
dnl @result{}-2147483648
eval(`0x80000000 % -1')
dnl @result{}0
eval(`-4 >> 1')
dnl @result{}-2
eval(`-4 >> 33')
dnl @result{}-2

새로운 OS(설치)에 대한 아이디어를 제공하기 위해 설치한 첫 번째 소프트웨어였습니다.

답변1

소프트웨어를 설치하는 데 문제가 있지만 현재 수행 중인 작업이 표시되지 않습니다. 방금 출력을 보여주었습니다.일부순서는 추측만 할 수 있습니다.

FreeBSD를 처음 사용하지만 이전에 GNU 시스템(Linux) 작업에 익숙했다면 미묘하지만 중요한 차이점이 있습니다.

자신의 프로그램을 컴파일할 때 전형적인 걸림돌은 make입니다. BSD에는 좋은 기능이 있지만 makeGNU와는 다릅니다 make. GNU를 사용하고 싶다면 makeGNU를 설치하세요. 그러나 그것을 사용할 때 그것은 make여전히 ​​BSD make이지만, 이제 여러분 gmake도 BSD를 갖게 됩니다. 이는 혼란스러울 수 있습니다.

m4이는 FreeBSD의 기본 시스템과 동일한 상황입니다.

$ which m4
/usr/bin/m4

그러나 설치한다고 쓰는 것은 gnu m4-1.4.18도움이 되지 않습니다. 왜냐하면 모든 길은 로마로 통하기 때문입니다. 설치 중이신가요?패키지/포트또는에서원천?

FreeBSD 패키지

FreeBSD에 소프트웨어를 설치하는 가장 쉬운 방법은 패키지를 설치하는 것입니다. 패키지는 미리 컴파일된 포트 바이너리 배포판입니다.

pkg install m4

당신은 아마 이것을하지 않았을 것입니다. 그러나 이것이 가장 쉬운 방법입니다.

FreeBSD 포트

FreeBSD 포트는 FreeBSD에서 애플리케이션을 실행하는 데 필요한 패치와 콘텐츠의 모음입니다. 당신이 가지고 있다면포트트리가 설치된 후 디렉토리를 변경 devel/m4하고 make애플리케이션을 컴파일(컴파일)합니다.

포트 트리는 BSD make를 대상으로 합니다. 따라서 GNU make 대신 BSD make를 사용하는 것이 중요합니다. 흥미로운 부분은 어느 것이 m4GNU 에 의존하는지입니다 .autoconfmake

그러나 우리의 목적을 위해 우리는 BSD make를 사용할 것입니다:

$ make
$ sudo make install

포트 사용의 한 가지 장점은 컴파일 시간 설정을 변경할 수 있다는 것입니다 make config. 그러나 대부분의 경우 GNU autotools 및 친구들을 사용하면 일반적으로 기본값으로 충분하며 바이너리 패키지만 있으면 됩니다.

소스코드 설치

내 생각 엔 소스에서 설치하려고하는 것 같습니다. 이 경우 GNU와 BSD 도구는 이름이 같은 경우가 많기 때문에 차이점을 이해하는 것이 중요합니다. 그러나 GNU 도구는 종종 GNU 도구를 사용하기를 원합니다. 일반 FreeBSD를 설치했다면 이미 makeBSD m4변형이 설치되어 있는 것입니다.

따라서 GNU 지침에 따르면 makeGNU make가 설치되어 있는지 확인하고 gmake이를 명령줄에 입력해야 합니다.

이것의 복잡한 내용을 배우고 싶지 않다면 패키지를 사용하는 것이 좋습니다. 이 경로를 계속 진행하려면 질문을 더 자세히 질문하고 현재 무엇을 하고 있는지 보여주셔야 합니다. 이 정보가 없으면 추측만 할 수 있습니다.

고쳐 쓰다

댓글을 읽어보니 근본 원인은 Apache APR을 설치하려는 것 같습니다. 이 작업은 다음에서 수행할 수 있습니다.FreeBSD 포트게다가. 이 글을 쓰는 시점에서 APR의 최신 포팅 버전은 1.6.3이며, 이는 Apache가 최신 안정 버전으로 간주하는 최신 버전입니다.

새로운 FreeBSD 시스템에서는 다음을 입력하는 것만큼 간단합니다:

pkg install apr1

바이너리 패키지 서버가 아직 따라잡지 못한 경우 직접 빌드하도록 선택할 수 있습니다. 이 경우 기본값을 변경할 수도 있습니다. 당신은 그것을 사용할 수 있습니다포트나무. 이 portsnap도구를 사용하여 트리가 최신 상태인지 확인하세요.

포트 트리가 없으면 다음을 수행하십시오.

# portsnap fetch
# portsnap extract

업데이트만 필요한 경우:

# portsnap fetch update

그 다음에:

# cd /usr/ports/devel/apr1
# make config
# make
# make install

관련 정보