이 글에서는 PCRE 라이브러리에 대해 알아보고 Linux 시스템에 자신이 원하는 현재 지원 버전을 설치하는 방법에 대해서 알아봅니다.
- PCRE 라이브러리 란?
- CentOS(Linux)에서 PCRE 라이브러리 설치 확인 방법
- PCRE 라이브러리 Versions
- PCRE 라이브러리 Download
1. PCRE 라이브러리 란?
PCRE은 Perl Compatible Regular Expressions의 약자로, Perl 언어에서 사용되는 정규표현식을 다른 언어나 프로그래밍 환경에서도 사용할 수 있도록 지원하는 C 라이브러리입니다.
PCRE은 다양한 운영체제에서 사용 가능하며, 많은 프로그래밍 언어에서 사용됩니다. PCRE은 Perl의 정규표현식 구문과 기능을 완벽하게 지원하며, 이를 통해 매우 강력한 문자열 처리 기능을 제공합니다.
PCRE은 주로 텍스트 처리, 문자열 검색, 대체 및 추출과 같은 작업에 사용됩니다. 이 라이브러리는 여러 가지 함수를 제공하며, 대부분의 함수는 정규표현식을 입력으로 받아서 처리합니다.
PCRE은 고급 정규표현식 기능을 제공하며, 그룹화, 반복, 캡처, 전방 탐색, 후방 탐색 등의 기능을 지원합니다. 이러한 기능은 문자열 처리 작업을 더욱 효율적으로 수행하고, 코드의 가독성과 유지보수성을 높일 수 있습니다.
PCRE 라이브러리는 많은 언어와 플랫폼에서 지원되며, 다양한 오픈 소스 프로젝트에서도 사용됩니다. 이 라이브러리는 유연하고 강력한 문자열 처리 기능을 제공하기 때문에, 다양한 종류의 소프트웨어에서 널리 사용되고 있습니다.
PCRE의 공식 홈페이지는 아래와 같습니다.
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)
% 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-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'
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