Type Here to Get Search Results !

정규표현식(Regular Expression) 처리를 위한 PCRE 라이브러리(pcre library) 설치

이 글에서는 PCRE 라이브러리에 대해 알아보고 Linux 시스템에 자신이 원하는 현재 지원 버전을 설치하는 방법에 대해서 알아봅니다. 



  1. PCRE 라이브러리 란?
  2. CentOS(Linux)에서 PCRE 라이브러리 설치 확인 방법
  3. PCRE 라이브러리 Versions
  4. PCRE 라이브러리 Download

1. PCRE 라이브러리 란?

PCRE은 Perl Compatible Regular Expressions의 약자로, Perl 언어에서 사용되는 정규표현식을 다른 언어나 프로그래밍 환경에서도 사용할 수 있도록 지원하는 C 라이브러리입니다.

PCRE은 다양한 운영체제에서 사용 가능하며, 많은 프로그래밍 언어에서 사용됩니다. PCRE은 Perl의 정규표현식 구문과 기능을 완벽하게 지원하며, 이를 통해 매우 강력한 문자열 처리 기능을 제공합니다.

PCRE은 주로 텍스트 처리, 문자열 검색, 대체 및 추출과 같은 작업에 사용됩니다. 이 라이브러리는 여러 가지 함수를 제공하며, 대부분의 함수는 정규표현식을 입력으로 받아서 처리합니다.

PCRE은 고급 정규표현식 기능을 제공하며, 그룹화, 반복, 캡처, 전방 탐색, 후방 탐색 등의 기능을 지원합니다. 이러한 기능은 문자열 처리 작업을 더욱 효율적으로 수행하고, 코드의 가독성과 유지보수성을 높일 수 있습니다.

PCRE 라이브러리는 많은 언어와 플랫폼에서 지원되며, 다양한 오픈 소스 프로젝트에서도 사용됩니다. 이 라이브러리는 유연하고 강력한 문자열 처리 기능을 제공하기 때문에, 다양한 종류의 소프트웨어에서 널리 사용되고 있습니다.

PCRE의 공식 홈페이지는 아래와 같습니다. 

http://www.pcre.org/


2. CentOS(Linux)에서 PCRE 라이브러리 설치 확인 방법

CentOS에서 rpm을 이용해서 pcre 라이브러리가 설치되어있는지 확인합니다.

rpm이 있는지 확인하기 위해 rpm 명령을 수행합니다.


% rpm
RPM 버전 - 4.11.3
Copyright (C) 1998-2002 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL

사용법: rpm [-aKfgpqVcdLilsiv?] [-a|--all] [-f|--file] [-g|--group] [-p|--package] [--pkgid] [--hdrid] [--triggeredby] [--whatrequires]
        [--whatprovides] [--nomanifest] [-c|--configfiles] [-d|--docfiles] [-L|--licensefiles] [--dump] [-l|--list] [--queryformat=QUERYFORMAT]
        [-s|--state] [--nofiledigest] [--nofiles] [--nodeps] [--noscript] [--allfiles] [--allmatches] [--badreloc] [-e|--erase <패키지>+]
        [--excludedocs] [--excludepath=<경로>] [--force] [-F|--freshen <패키지파일>+] [-h|--hash] [--ignorearch] [--ignoreos] [--ignoresize] [-i|--install]
        [--justdb] [--nodeps] [--nofiledigest] [--nocontexts] [--noorder] [--noscripts] [--notriggers] [--nocollections] [--oldpackage]
        [--percent] [--prefix=<디렉토리>] [--relocate=<이전경로>=<새로운경로>] [--replacefiles] [--replacepkgs] [--test] [-U|--upgrade <패키지파일>+]
        [--reinstall=<패키지파일>+] [-D|--define 'MACRO EXPR'] [--undefine=MACRO] [-E|--eval 'EXPR'] [--macros=<FILE:...>] [--noplugins] [--nodigest]
        [--nosignature] [--rcfile=<FILE:...>] [-r|--root ROOT] [--dbpath=DIRECTORY] [--querytags] [--showrc] [--quiet] [-v|--verbose] [--version]
        [-?|--help] [--usage] [--scripts] [--setperms] [--setugids] [--conflicts] [--obsoletes] [--provides] [--requires] [--info] [--changelog]
        [--xml] [--triggers] [--last] [--dupes] [--filesbypkg] [--fileclass] [--filecolor] [--fscontext] [--fileprovide] [--filerequire]
        [--filecaps]
위와 같이 사용법이 나오면 정상적으로 설치되어있는 시스템입니다. 다음의 rpm 명령을 통해서 PCRE 라이브러리가 설치되어있는지 확인할 수 있습니다.
% rpm -qa |grep pcre
pcre-8.32-15.el7.x86_64
pcre-devel-8.32-15.el7.x86_64


3. PCRE 라이브러리 버전(Versions)

PCRE library는 두 개의 major 버전을 가지고 있습니다. 

첫 번째 major 버전은 1997년에 최초 릴리즈된 8.45 버전으로 PCRE라고 합니다. 

이 버전은 현재 유지관리 되지 않지만 여전히 많은 곳에서 사용되고 있습니다. 

현재 최신 major 버전은 2015년에 릴리즈된 버전으로 PCRE2이며 10.39 버전입니다.

그러므로, 신규 프로젝트에서는 10.39 이상의 버전을 사용해야 합니다. 


4. PCRE 라이브러리 다운로드(Download)

이 글에서는 10.40 버전을 설치하는 것을 예제로 수행합니다. 


GitHub 공식 홈페이지에서 PCRE2 최신 릴리즈 라이브러리를 다운로드 할 수 있습니다. 

https://github.com/PhilipHazel/pcre2/releases

해당 github 페이지에는 10.42가 가장 최신으로 나와있습니다. 

여기서 조금 아래로 내려가면 10.40으로 다운로드 할 수 있는 PCRE2-10.42가 있고, 

Assets(▼)를 눌러주면 확장되면서 다운로드 할 수 있는 링크가 나타납니다. 


다운로드 받을 압축파일의 링크를 복사 후 wget을 이용해서 터미널에서 직접 다운로드 받습니다. 

lswhh: ~/pkg
% wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.gz
--2023-04-14 17:52:17--  https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.40/pcre2-10.40.tar.gz
Resolving github.com (github.com)... 20.200.245.247
Connecting to github.com (github.com)|20.200.245.247|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/398251321/7b955908-a776-4a36-94c1-857f97899da8?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230414%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230414T085217Z&X-Amz-Expires=300&X-Amz-Signature=5c16f1aa95f852a9ace781db430db6bc0f3d7295a2c02ecaf8ed3845a4c3aacf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=398251321&response-content-disposition=attachment%3B%20filename%3Dpcre2-10.40.tar.gz&response-content-type=application%2Foctet-stream [following]
--2023-04-14 17:52:17--  https://objects.githubusercontent.com/github-production-release-asset-2e65be/398251321/7b955908-a776-4a36-94c1-857f97899da8?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230414%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230414T085217Z&X-Amz-Expires=300&X-Amz-Signature=5c16f1aa95f852a9ace781db430db6bc0f3d7295a2c02ecaf8ed3845a4c3aacf&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=398251321&response-content-disposition=attachment%3B%20filename%3Dpcre2-10.40.tar.gz&response-content-type=application%2Foctet-stream
Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...
Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2359622 (2.2M) [application/octet-stream]
Saving to: ‘pcre2-10.40.tar.gz’

100%[===============================================================================================================================================================>] 2,359,622   4.54MB/s   in 0.5s

2023-04-14 17:52:18 (4.54 MB/s) - ‘pcre2-10.40.tar.gz’ saved [2359622/2359622]

5. PCRE 라이브러리 설치하기(Install)

install은 단순히 ./configure 그리고 make, 마지막으로 make install 하면 됩니다. 
% ls
pcre2-10.40.tar.gz
lswhh: ~/pkg
% tar xvzf pcre2-10.40.tar.gz

lswhh: ~/pkg/pcre2-10.40
% cat INSTALL
... 
./configure && make && make install
...

lswhh: ~/pkg/pcre2-10.40
% ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes

config.status: executing libtool commands
config.status: executing script-chmod commands
config.status: executing delete-old-chartables commands

pcre2-10.40 configuration summary:

    Install prefix ..................... : /usr/local
    C preprocessor ..................... :
    C compiler ......................... : gcc -std=gnu99
    Linker ............................. : /usr/bin/ld -m elf_x86_64
    C preprocessor flags ............... :
    C compiler flags ................... : -O2 -fvisibility=hidden
    Linker flags ....................... :
    Extra libraries .................... :

    Build 8-bit pcre2 library .......... : yes
    Build 16-bit pcre2 library ......... : no
    Build 32-bit pcre2 library ......... : no
    Include debugging code ............. : no
    Enable JIT compiling support ....... : no
    Use SELinux allocator in JIT ....... : no
    Enable Unicode support ............. : yes
    Newline char/sequence .............. : lf
    \R matches only ANYCRLF ............ : no
    \C is disabled ..................... : no
    EBCDIC coding ...................... : no
    EBCDIC code for NL ................. : n/a
    Rebuild char tables ................ : no
    Internal link size ................. : 2
    Nested parentheses limit ........... : 250
    Heap limit ......................... : 20000000 kibibytes
    Match limit ........................ : 10000000
    Match depth limit .................. : MATCH_LIMIT
    Build shared libs .................. : yes
    Build static libs .................. : yes
    Use JIT in pcre2grep ............... : no
    Enable callouts in pcre2grep ....... : yes
    Enable fork in pcre2grep callouts .. : yes
    Initial buffer size for pcre2grep .. : 20480
    Maximum buffer size for pcre2grep .. : 1048576
    Link pcre2grep with libz ........... : no
    Link pcre2grep with libbz2 ......... : no
    Link pcre2test with libedit ........ : no
    Link pcre2test with libreadline .... : no
    Valgrind support ................... : no
    Code coverage ...................... : no
    Fuzzer support ..................... : no
    Use %zu and %td .................... : auto

lswhh: ~/pkg/pcre2-10.40
% make
rm -f src/pcre2_chartables.c
ln -s /p3700/lswhh/pkg/pcre2-10.40/src/pcre2_chartables.c.dist /p3700/lswhh/pkg/pcre2-10.40/src/pcre2_chartables.c
make  all-am
make[1]: Entering directory `/p3700/lswhh/pkg/pcre2-10.40'
  CC       src/pcre2grep-pcre2grep.o
  CC       src/libpcre2_8_la-pcre2_auto_possess.lo
  CC       src/libpcre2_8_la-pcre2_compile.lo
  CC       src/libpcre2_8_la-pcre2_config.lo
... 
  CCLD     pcre2grep
  CC       src/pcre2test-pcre2test.o
  CC       src/libpcre2_posix_la-pcre2posix.lo
  CCLD     libpcre2-posix.la
  CCLD     pcre2test
make[1]: Leaving directory `/p3700/lswhh/pkg/pcre2-10.40'
make install을 하면 아래와 같은 에러가 발생합니다. 


% make install
make  install-am
make[1]: Entering directory `/p3700/lswhh/pkg/pcre2-10.40'
make[2]: Entering directory `/p3700/lswhh/pkg/pcre2-10.40'
 /usr/bin/mkdir -p '/usr/local/lib'
 /bin/sh ./libtool   --mode=install /usr/bin/install -c   libpcre2-8.la libpcre2-posix.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libpcre2-8.so.0.11.0 /usr/local/lib/libpcre2-8.so.0.11.0
/usr/bin/install: cannot create regular file '/usr/local/lib/libpcre2-8.so.0.11.0': Permission denied
make[2]: *** [install-libLTLIBRARIES] 오류 1
make[2]: Leaving directory `/p3700/lswhh/pkg/pcre2-10.40'
make[1]: *** [install-am] 오류 2
make[1]: Leaving directory `/p3700/lswhh/pkg/pcre2-10.40'

위의 오류는 pcre2 라이브러리를 '/usr/local/lib/'에 복사하려다 발생한 오류이므로 해당 디렉토리에 권한이 있는 사용자가 install을 해야 합니다. 
물론, 계정별로 다른 라이브러리 경로를 가지려면 다른 방법을 사용해야 하지만, 이 글에서는 시스템 라이브러리에 설치하는 방법을 적용합니다. 
pcre2 라이브러리가 설치되어있는지 확인하기 위해서 /usr/local/lib/에 libpcre2-xxx가 있는지 검사하는 것을 통해서도 가능하다는 것을 알 수 있습니다. 

root 계정으로 계정을 변경합니다. 

lswhh: ~/pkg/pcre2-10.40
% su -
암호:

root 계정으로 아래의 make install을 수행합니다.

[root pcre2-10.40]# make install
make  install-am
make[1]: Entering directory `/p3700/lswhh/pkg/pcre2-10.40'
make[2]: Entering directory `/p3700/lswhh/pkg/pcre2-10.40'
 /usr/bin/mkdir -p '/usr/local/lib'
 /bin/sh ./libtool   --mode=install /usr/bin/install -c   libpcre2-8.la libpcre2-posix.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libpcre2-8.so.0.11.0 /usr/local/lib/libpcre2-8.so.0.11.0
libtool: install: (cd /usr/local/lib && { ln -s -f libpcre2-8.so.0.11.0 libpcre2-8.so.0 || { rm -f libpcre2-8.so.0 && ln -s libpcre2-8.so.0.11.0 libpcre2-8.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libpcre2-8.so.0.11.0 libpcre2-8.so || { rm -f libpcre2-8.so && ln -s libpcre2-8.so.0.11.0 libpcre2-8.so; }; })
libtool: install: /usr/bin/install -c .libs/libpcre2-8.lai /usr/local/lib/libpcre2-8.la
libtool: warning: relinking 'libpcre2-posix.la'
libtool: install: (cd /p3700/lswhh/pkg/pcre2-10.40; /bin/sh "/p3700/lswhh/pkg/pcre2-10.40/libtool"  --silent --tag CC --mode=relink gcc -std=gnu99 -DPCRE2_CODE_UNIT_WIDTH=8 -fvisibility=hidden -O2 -version-info 3:2:0 -o libpcre2-posix.la -rpath /usr/local/lib src/libpcre2_posix_la-pcre2posix.lo libpcre2-8.la )
libtool: install: /usr/bin/install -c .libs/libpcre2-posix.so.3.0.2T /usr/local/lib/libpcre2-posix.so.3.0.2
libtool: install: (cd /usr/local/lib && { ln -s -f libpcre2-posix.so.3.0.2 libpcre2-posix.so.3 || { rm -f libpcre2-posix.so.3 && ln -s libpcre2-posix.so.3.0.2 libpcre2-posix.so.3; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libpcre2-posix.so.3.0.2 libpcre2-posix.so || { rm -f libpcre2-posix.so && ln -s libpcre2-posix.so.3.0.2 libpcre2-posix.so; }; })
libtool: install: /usr/bin/install -c .libs/libpcre2-posix.lai /usr/local/lib/libpcre2-posix.la
libtool: install: /usr/bin/install -c .libs/libpcre2-8.a /usr/local/lib/libpcre2-8.a
libtool: install: chmod 644 /usr/local/lib/libpcre2-8.a
libtool: install: ranlib /usr/local/lib/libpcre2-8.a
libtool: install: /usr/bin/install -c .libs/libpcre2-posix.a /usr/local/lib/libpcre2-posix.a
libtool: install: chmod 644 /usr/local/lib/libpcre2-posix.a
libtool: install: ranlib /usr/local/lib/libpcre2-posix.a
libtool: finish: PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /usr/bin/mkdir -p '/usr/local/bin'
  /bin/sh ./libtool   --mode=install /usr/bin/install -c pcre2grep pcre2test '/usr/local/bin'
libtool: install: /usr/bin/install -c .libs/pcre2grep /usr/local/bin/pcre2grep
libtool: install: /usr/bin/install -c .libs/pcre2test /usr/local/bin/pcre2test
 /usr/bin/mkdir -p '/usr/local/bin'
 /usr/bin/install -c pcre2-config '/usr/local/bin'
 /usr/bin/mkdir -p '/usr/local/share/doc/pcre2'
 /usr/bin/install -c -m 644 AUTHORS COPYING ChangeLog LICENCE NEWS README doc/pcre2.txt doc/pcre2-config.txt doc/pcre2grep.txt doc/pcre2test.txt '/usr/local/share/doc/pcre2'
 /usr/bin/mkdir -p '/usr/local/share/doc/pcre2/html'
 /usr/bin/install -c -m 644 doc/html/NON-AUTOTOOLS-BUILD.txt doc/html/README.txt doc/html/index.html doc/html/pcre2-config.html doc/html/pcre2.html doc/html/pcre2_callout_enumerate.html doc/html/pcre2_code_copy.html doc/html/pcre2_code_copy_with_tables.html doc/html/pcre2_code_free.html doc/html/pcre2_compile.html doc/html/pcre2_compile_context_copy.html doc/html/pcre2_compile_context_create.html doc/html/pcre2_compile_context_free.html doc/html/pcre2_config.html doc/html/pcre2_convert_context_copy.html doc/html/pcre2_convert_context_create.html doc/html/pcre2_convert_context_free.html doc/html/pcre2_converted_pattern_free.html doc/html/pcre2_dfa_match.html doc/html/pcre2_general_context_copy.html doc/html/pcre2_general_context_create.html doc/html/pcre2_general_context_free.html doc/html/pcre2_get_error_message.html doc/html/pcre2_get_mark.html doc/html/pcre2_get_match_data_size.html doc/html/pcre2_get_ovector_count.html doc/html/pcre2_get_ovector_pointer.html doc/html/pcre2_get_startchar.html doc/html/pcre2_jit_compile.html doc/html/pcre2_jit_free_unused_memory.html doc/html/pcre2_jit_match.html doc/html/pcre2_jit_stack_assign.html doc/html/pcre2_jit_stack_create.html doc/html/pcre2_jit_stack_free.html doc/html/pcre2_maketables.html doc/html/pcre2_maketables_free.html doc/html/pcre2_match.html doc/html/pcre2_match_context_copy.html doc/html/pcre2_match_context_create.html doc/html/pcre2_match_context_free.html '/usr/local/share/doc/pcre2/html'
 /usr/bin/install -c -m 644 doc/html/pcre2_match_data_create.html doc/html/pcre2_match_data_create_from_pattern.html doc/html/pcre2_match_data_free.html doc/html/pcre2_pattern_convert.html doc/html/pcre2_pattern_info.html doc/html/pcre2_serialize_decode.html doc/html/pcre2_serialize_encode.html doc/html/pcre2_serialize_free.html doc/html/pcre2_serialize_get_number_of_codes.html doc/html/pcre2_set_bsr.html doc/html/pcre2_set_callout.html doc/html/pcre2_set_character_tables.html doc/html/pcre2_set_compile_extra_options.html doc/html/pcre2_set_compile_recursion_guard.html doc/html/pcre2_set_depth_limit.html doc/html/pcre2_set_glob_escape.html doc/html/pcre2_set_glob_separator.html doc/html/pcre2_set_heap_limit.html doc/html/pcre2_set_match_limit.html doc/html/pcre2_set_max_pattern_length.html doc/html/pcre2_set_offset_limit.html doc/html/pcre2_set_newline.html doc/html/pcre2_set_parens_nest_limit.html doc/html/pcre2_set_recursion_limit.html doc/html/pcre2_set_recursion_memory_management.html doc/html/pcre2_set_substitute_callout.html doc/html/pcre2_substitute.html doc/html/pcre2_substring_copy_byname.html doc/html/pcre2_substring_copy_bynumber.html doc/html/pcre2_substring_free.html doc/html/pcre2_substring_get_byname.html doc/html/pcre2_substring_get_bynumber.html doc/html/pcre2_substring_length_byname.html doc/html/pcre2_substring_length_bynumber.html doc/html/pcre2_substring_list_free.html doc/html/pcre2_substring_list_get.html doc/html/pcre2_substring_nametable_scan.html doc/html/pcre2_substring_number_from_name.html doc/html/pcre2api.html doc/html/pcre2build.html '/usr/local/share/doc/pcre2/html'
 /usr/bin/install -c -m 644 doc/html/pcre2callout.html doc/html/pcre2compat.html doc/html/pcre2convert.html doc/html/pcre2demo.html doc/html/pcre2grep.html doc/html/pcre2jit.html doc/html/pcre2limits.html doc/html/pcre2matching.html doc/html/pcre2partial.html doc/html/pcre2pattern.html doc/html/pcre2perform.html doc/html/pcre2posix.html doc/html/pcre2sample.html doc/html/pcre2serialize.html doc/html/pcre2syntax.html doc/html/pcre2test.html doc/html/pcre2unicode.html '/usr/local/share/doc/pcre2/html'
 /usr/bin/mkdir -p '/usr/local/include'
 /usr/bin/install -c -m 644 src/pcre2posix.h '/usr/local/include'
 /usr/bin/mkdir -p '/usr/local/share/man/man1'
 /usr/bin/install -c -m 644 doc/pcre2-config.1 doc/pcre2grep.1 doc/pcre2test.1 '/usr/local/share/man/man1'
 /usr/bin/mkdir -p '/usr/local/share/man/man3'
 /usr/bin/install -c -m 644 doc/pcre2.3 doc/pcre2_callout_enumerate.3 doc/pcre2_code_copy.3 doc/pcre2_code_copy_with_tables.3 doc/pcre2_code_free.3 doc/pcre2_compile.3 doc/pcre2_compile_context_copy.3 doc/pcre2_compile_context_create.3 doc/pcre2_compile_context_free.3 doc/pcre2_config.3 doc/pcre2_convert_context_copy.3 doc/pcre2_convert_context_create.3 doc/pcre2_convert_context_free.3 doc/pcre2_converted_pattern_free.3 doc/pcre2_dfa_match.3 doc/pcre2_general_context_copy.3 doc/pcre2_general_context_create.3 doc/pcre2_general_context_free.3 doc/pcre2_get_error_message.3 doc/pcre2_get_mark.3 doc/pcre2_get_match_data_size.3 doc/pcre2_get_ovector_count.3 doc/pcre2_get_ovector_pointer.3 doc/pcre2_get_startchar.3 doc/pcre2_jit_compile.3 doc/pcre2_jit_free_unused_memory.3 doc/pcre2_jit_match.3 doc/pcre2_jit_stack_assign.3 doc/pcre2_jit_stack_create.3 doc/pcre2_jit_stack_free.3 doc/pcre2_maketables.3 doc/pcre2_maketables_free.3 doc/pcre2_match.3 doc/pcre2_match_context_copy.3 doc/pcre2_match_context_create.3 doc/pcre2_match_context_free.3 doc/pcre2_match_data_create.3 doc/pcre2_match_data_create_from_pattern.3 doc/pcre2_match_data_free.3 doc/pcre2_pattern_convert.3 '/usr/local/share/man/man3'
 /usr/bin/install -c -m 644 doc/pcre2_pattern_info.3 doc/pcre2_serialize_decode.3 doc/pcre2_serialize_encode.3 doc/pcre2_serialize_free.3 doc/pcre2_serialize_get_number_of_codes.3 doc/pcre2_set_bsr.3 doc/pcre2_set_callout.3 doc/pcre2_set_character_tables.3 doc/pcre2_set_compile_extra_options.3 doc/pcre2_set_compile_recursion_guard.3 doc/pcre2_set_depth_limit.3 doc/pcre2_set_glob_escape.3 doc/pcre2_set_glob_separator.3 doc/pcre2_set_heap_limit.3 doc/pcre2_set_match_limit.3 doc/pcre2_set_max_pattern_length.3 doc/pcre2_set_offset_limit.3 doc/pcre2_set_newline.3 doc/pcre2_set_parens_nest_limit.3 doc/pcre2_set_recursion_limit.3 doc/pcre2_set_recursion_memory_management.3 doc/pcre2_set_substitute_callout.3 doc/pcre2_substitute.3 doc/pcre2_substring_copy_byname.3 doc/pcre2_substring_copy_bynumber.3 doc/pcre2_substring_free.3 doc/pcre2_substring_get_byname.3 doc/pcre2_substring_get_bynumber.3 doc/pcre2_substring_length_byname.3 doc/pcre2_substring_length_bynumber.3 doc/pcre2_substring_list_free.3 doc/pcre2_substring_list_get.3 doc/pcre2_substring_nametable_scan.3 doc/pcre2_substring_number_from_name.3 doc/pcre2api.3 doc/pcre2build.3 doc/pcre2callout.3 doc/pcre2compat.3 doc/pcre2convert.3 doc/pcre2demo.3 '/usr/local/share/man/man3'
 /usr/bin/install -c -m 644 doc/pcre2jit.3 doc/pcre2limits.3 doc/pcre2matching.3 doc/pcre2partial.3 doc/pcre2pattern.3 doc/pcre2perform.3 doc/pcre2posix.3 doc/pcre2sample.3 doc/pcre2serialize.3 doc/pcre2syntax.3 doc/pcre2unicode.3 '/usr/local/share/man/man3'
 /usr/bin/mkdir -p '/usr/local/include'
 /usr/bin/install -c -m 644 src/pcre2.h '/usr/local/include'
 /usr/bin/mkdir -p '/usr/local/lib/pkgconfig'
 /usr/bin/install -c -m 644 libpcre2-8.pc libpcre2-posix.pc '/usr/local/lib/pkgconfig'
make[2]: Leaving directory `/p3700/lswhh/pkg/pcre2-10.40'
make[1]: Leaving directory `/p3700/lswhh/pkg/pcre2-10.40'
% ls /usr/local/lib/libpcre2-
libpcre2-8.a             libpcre2-8.so            libpcre2-8.so.0.11.0     libpcre2-posix.la        libpcre2-posix.so.3
libpcre2-8.la            libpcre2-8.so.0          libpcre2-posix.a         libpcre2-posix.so        libpcre2-posix.so.3.0.2

위와 같이 pcre2 라이브러리가 /usr/local/lib에 설치되었습니다.