CentOS 7源码编译安装相关组件

cuixiaogang

目录介绍

  • 源码文件存储目录:/home/cuixiaogang/ops
  • 应用软件安装目录:/home/cuixiaogang/app
  • 依赖软件安装目录:/home/cuixiaogang/libs
  • 开发源码存储目录:/home/cuixiaogang/www

依赖编译安装

zlib

1
2
3
4
5
6
7
8
9
# 下载源码
cd /home/cuixiaogang/ops
wget https://zlib.net/zlib-1.3.1.tar.gz
tar -zxvf zlib-1.3.1.tar.gz
cd zlib-1.3.1

# 配置、编译、安装到自定义目录
./configure --prefix=/home/cuixiaogang/libs
make && make install

libiconv

1
2
3
4
5
6
7
cd /home/cuixiaogang/ops
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
tar -zxvf libiconv-1.17.tar.gz
cd libiconv-1.17

./configure --prefix=/home/cuixiaogang/libs
make && make install

OpenSSL

1
2
3
4
5
6
7
cd /home/cuixiaogang/ops
wget https://www.openssl.org/source/openssl-1.1.1t.tar.gz
tar -zxvf openssl-1.1.1t.tar.gz
cd openssl-1.1.1t

./config --prefix=/home/cuixiaogang/libs shared zlib
make && make install

libcurl

1
2
3
4
5
6
7
cd /home/cuixiaogang/ops
wget https://curl.se/download/curl-8.4.0.tar.gz
tar -zxvf curl-8.4.0.tar.gz
cd curl-8.4.0

./configure --prefix=/home/cuixiaogang/libs --with-ssl=/home/cuixiaogang/libs --with-zlib=/home/cuixiaogang/libs --enable-shared
make && make install

libmcrypt

1
2
3
4
5
6
7
8
9
# 下载源码
cd /home/cuixiaogang/ops
wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8

# 配置、编译、安装到自定义目录
./configure --prefix=/home/cuixiaogang/libs --disable-posix-threads
make && make install

libxml2

1
2
3
4
5
6
7
8
9
# 下载源码
cd /home/cuixiaogang/ops
wget https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.5.tar.xz
tar -xf libxml2-2.11.5.tar.xz
cd libxml2-2.11.5

# 配置、编译、安装到自定义目录
./configure --prefix=/home/cuixiaogang/libs --with-zlib=/home/cuixiaogang/libs --without-python
make && make install

libjpeg

1
2
3
4
5
6
7
8
cd /home/cuixiaogang/ops
wget http://www.ijg.org/files/jpegsrc.v9d.tar.gz
tar -xf jpegsrc.v9d.tar.gz
cd jpeg-9d

./configure --prefix=/home/cuixiaogang/libs/jpeg --enable-shared --enable-static
make
make install

libpng

1
2
3
4
5
6
7
8
cd /home/cuixiaogang/ops
wget https://downloads.sourceforge.net/project/libpng/libpng16/1.6.43/libpng-1.6.43.tar.gz
tar -xf libpng-1.6.43.tar.gz
cd libpng-1.6.43

./configure --prefix=/home/cuixiaogang/libs --with-zlib=/home/cuixiaogang/libs
make
make install

freetype

1
2
3
4
5
6
7
8
cd /home/cuixiaogang/ops
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.13.1.tar.gz
tar -xf freetype-2.13.1.tar.gz
cd freetype-2.13.1

./configure --prefix=/home/cuixiaogang/libs
make
make install

注意事项

  • FreeType 2.13.1+ 不再提供 freetype-config:从 FreeType 2.9 开始,官方逐步弃用 freetype-config,转而推荐使用 pkg-config。
  • PHP 的 configure 脚本依赖 pkg-config:在 FreeType 2.13.1+ 中,PHP 的 –with-freetype-dir 参数会通过 pkg-config 查找 freetype2.pc 文件。

webp

1
2
3
4
5
6
7
8
9
10
cd /home/cuixiaogang/ops
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.3.2.tar.gz
tar -xf libwebp-1.3.2.tar.gz
cd libwebp-1.3.2

./configure --prefix=/home/cuixiaogang/libs\
--with-libpng=/home/cuixiaogang/libs\
--with-zlib=/home/cuixiaogang/libs
make
make install

glib

1
2
3
4
cd /home/cuixiaogang/ops
wget https://ftp.gnome.org/pub/GNOME/sources/glib/2.78/glib-2.78.4.tar.xz
tar -xf glib-2.78.4.tar.xz
cd glib-2.78.4

注意事项

  • pkg-config与glib安装时存在环状依赖
    • pkg-config 依赖 GLib(需要 GLib 提供 glib.h 和 libglib-2.0.so)。
    • GLib 的编译需要 pkg-config(通过 .pc 文件管理依赖)。

pkg-config

注意事项

  • GLib 从 2.60 版本起 已弃用 Autotools(./configure),改用 Meson 构建系统。

Boost

1
2
3
4
5
6
7
8
9
# 下载源码
cd /home/cuixiaogang/ops
wget https://github.com/boostorg/boost/releases/download/boost-1.88.0/boost-1.88.0-b2-nodocs.tar.gz
tar -zxvf boost-1.88.0-b2-nodocs.tar.gz
cd boost-1.88.0

# 配置并安装到自定义目录
./bootstrap.sh --prefix=/home/cuixiaogang/libs
./b2 install --prefix=/home/cuixiaogang/libs

软件编译安装

GIT编译安装

1
2
3
4
5
6
7
8
# 下载源码
cd /home/cuixiaogang/ops
https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
tar -zxvf git-2.9.5.tar.gz
cd git-2.9.5

./configure --prefix=/home/cuixiaogang/app/git-2.9.5 --with-curl --with-openssl --with-expat --with-zlib LDFLAGS="-L/home/cuixiaogang/libs/lib -liconv -lcurl -lssl -lcrypto" CPPFLAGS="-I/home/cuixiaogang/libs/include -I/home/cuixiaogang/libs/include/curl"
make && make install

Python-3.11.6

1
2
3
4
5
6
7
8
cd /home/cuixiaogang/ops
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
tar -xzf Python-3.11.6.tgz
cd Python-3.11.6

mkdir /home/cuixiaogang/app/python-3.11.6
./configure --prefix=/home/cuixiaogang/app/python-3.11.6
make && make install

Meson

1
2
3
4
5
6
7
8
9
10
11
12
cd /home/cuixiaogang/ops
wget https://github.com/mesonbuild/meson/releases/download/1.1.1/meson-1.1.1.tar.gz
tar -xzf meson-1.1.1.tar.gz
cd meson-1.1.1


# 使用 Python 3.11.6 显式编译
python3 setup.py build

# 安装到指定目录
mkdir -p /home/cuixiaogang/app/meson-1.1.1
python3 setup.py install --prefix=/home/cuixiaogang/app/meson-1.1.1

Ninja-build

1
2
3
4
5
6
7
8
cd /home/cuixiaogang/app
wget https://github.com/ninja-build/ninja/archive/refs/tags/v1.11.1.tar.gz
mv v1.11.1.tar.gz ninja-1.11.1.tar.gz
tar -zxvf ninja-1.11.1.tar.gz
rm -rf ninja-1.11.1.tar.gz
cd ninja-1.11.1

./configure.py --bootstrap