Cloudflare 可使用的端口
记录实际使用过程中可以正常代理的端口号:
80,443,8080,2086,2052,2053,2082,2083,2086,2087,2095,2096,8880,8443
记录实际使用过程中可以正常代理的端口号:
80,443,8080,2086,2052,2053,2082,2083,2086,2087,2095,2096,8880,8443
yum install -y httpd yum-utils createreposudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload#编辑/etc/sysconfig/selinux
vim /etc/sysconfig/selinux
#将SELINUX=enforcing修改为SELINUX=disabled
#执行命令使其生效
setenforce 0systemctl restart httpdyum repolist
#将列出 repo id repo name信息
base/7/x86_64 xxxx
extras/7/x86_64 xxxx
updates/7/x86_64 xxxxreposync --repo repo-id -p /local-repo-folder-path/
#repo-id 为当前要下载的仓库id
#local-repo-folder-path为当前用于存储下载仓库资源的目录路径cd /local-repo-folder-path/
createrepo repo-id/
#repor-id为仓库idcd /etc/yum.repos.d
mkdir bak
mv CentOS* bak
#创建本地源配置
vim local.repo
#文件内容
# [repo id]
# name=repo name
# baseurl=http://ip-address/centos/repo-name
# gpgcheck=0
# enabled=1
# 重复上述配置节点,为所有仓库添加配置节点# 清理yum
yum clean all
# 建立yum缓存
yum makecache
# 查看仓库
yum repolist
# 更新yum
yum update
# 安装软件以验证# 创建配置
sudo vim /etc/profile.d/docker.sh
# 内容如下
# export DOCKER_HOST=tcp://localhost:2375
source /etc/profile
source /etc/basrc
#配置启动文件
vim /lib/systemd/system/docker.service
#将ExecStart配置追加以下内容
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:7654 原配置内容 docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
harbor.rjb.dgbc.net.cn/cs/gitlab-runner:latest# 创建docker volume
docker volume create gitlab-runner-config
# 使用volume启动runner
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v gitlab-runner-config:/etc/gitlab-runner \
harbor.rjb.dgbc.net.cn/cs/gitlab-runner:latest# 本地文件挂载的注册指令
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner harbor.rjb.dgbc.net.cn/cs/gitlab-runner register
# docker volume挂载的注册指令
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest registergitlab-runner的docker runner在运行时需要访问镜像仓库并通过认证才能拉取镜像,故需要为runner指定镜像仓库的认证信息,认证信息将保存在gitlab-runner的DOCKER_AUTH_CONFIG环境变量中。
通过获取登录该仓库的认证配置信息,位于文件~/.docker/config.json
登录指令:
docker login repository-url --username user --password passwd认证信息示例:
{
"auths": {
"gitlab.com": {
"auth": "XXXXXXX"
},
"registry.gitlab.com": {
"auth": "XXXXXXX"
}
}
}在项目的gitlab.yml文件的variables中指定DOCKER_AUTH_CONFIG的值:
stages:
- test
variables:
DOCKER_AUTH_CONFIG: '{"auths":{"repository-url":"repository-key"}}'在gitlab-runner的配置文件/etc/gitlab-ruuner/config.toml中增加DOCKER_AUTG_CONFIG环境变量的值,并重启runner使之生效
[[runners]]
environment = ['DOCKER_AUTH_CONFIG={ "auths": { "registry.gitlab.com": {"auth": "xxxxx"}}}'] 1 建议先按需关闭麒麟操作系统的相关保护功能《麒麟V10关闭安全控制》
2 编译环境要求:
麒麟V10-SP1-HWE-2303-x86_64(兆芯)版本操作系统(简述为麒麟操作系统)为基于Ubuntu 18.04(bionic)发行版改进,该版本麒麟操作系统可以使用Ubuntu 18.04(bionic)及同内核版本的其他linux软件源。Qt 6.5.3 LTS开放源代码编译所需的部分组件在麒麟官方的软件源中不存在或版本过低,如gcc、g++、cmake等,故首先为麒麟操作系统添加其他可用的软件源。
首先安装software-properties-common以便添加源时加入对应源的公钥。
sudo apt-get install -y software-properties-common此处添加阿里云和PPA到源列表。
请注意,麒麟操作系统默认源会被操作系统定时检测及还原,故请勿在默认源文件(/etc/apt/source.list)中增加其他源配置。而应在/etc/apt/source.list.d路径下为每个源单独配置一份配置文件。
# 添加阿里云 Ubuntu 18.04(bionic)源
FILE_SOURCE_LIST=/etc/apt/sources.list.d/aliyun.list
echo deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse > ${FILE_SOURCE_LIST}
echo deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse >> ${FILE_SOURCE_LIST}
echo deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse >> ${FILE_SOURCE_LIST}
echo deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse >> ${FILE_SOURCE_LIST}
echo deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse >> ${FILE_SOURCE_LIST}
# 添加PPA
FILE_SOURCE_LIST=/etc/apt/sources.list.d/ubuntu-toolchain-r-test.list
echo deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic main >> ${FILE_SOURCE_LIST}
# 添加PPA公钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F完成源配置的添加后,更新apt
sudo apt-get update
sudo apt-get upgrade请注意,若执行某条安装命令失败,请在安装失败后先对apt进行缓存更新,然后尝试重新执行安装命令。若此时依然不行,则核对安装的包名是否正确或安装以对应组件库名打头的所有包。
使用高版本的gcc、g++、cmake、openssl需要先安装系统版本默认支持的版本作为基础版本,然后再进行高版本的安装或利用基础版本对高版本的源码进行编译安装以达到使用高版本的目的。
sudo apt-get install -y gcc g++ cmakesudo apt-get install -y \
libssl-dev \
libgcrypt20-dev \
libcrypto++6 \
libcrypto++-dev \
opensslsudo apt-get install -y llvm-10 clang-10 llvm-10-dev libclang-10-dev
#变更为clang-12、llvm-12
sudo apt-get install -y llvm-12 clang-12 llvm-12-dev libclang-12-dev
#若第一次执行安装clang-12版本失败,则先对apt进行更新请注意安装前提:需先安装clang-12和llvm-12。
# 安装gcc-13
sudo apt-get install -y gcc-13
# 修改默认的gcc版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 60
# 检查安装及修改默认版本后的gcc版本号
gcc --version
# 安装g++-13
sudo apt-get install -y g++-13
# 修改默认g++版本
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 60
# 检查版本
g++ --version请注意,若在多次通过update-alternatives修改默认gcc和g++无法生效,请使用update-alternatives --config来手动确认选择的版本。
# 输入下述命令后,按提示信息选择列出的gcc编译器序号
sudo update-alternatives --config gcc
# 输入下述命令后,按提示信息选择列出的g++编译器序号
sudo update-alternatives --config g++请注意需要编译安装debug和release两个版本,并且请勿将两个版本安装在同一路径下
#在openssl 3.x源码目录下执行命令 编译release版本并安装到默认目录
mkdir build-release && cd build-release
../config
#使用默认安装路径即可
make && make install
#在openssl 3.x源码目录下执行命令 编译debug版本并安装到 /usr/local/lib64d/openssl目录
mkdir build-debug && cd build-debug
../Configure --prefix=/usr/local/lib64d/openssl --debug
make && make install
# 请注意,此处仅是编译并安装到了系统中,不论是通过apt包安装的openssl还是自行编译安装的openssl,都没有自动建立ldconfig缓存,需要手动添加才能正常使用执行如下命令进行编译、安装及版本检查
# 在解压缩后的cmake 3.29.x源码目录下执行
./bootstrap
# 编译
make
# 安装
make install
# 版本检测(检测安装结果)
cmake --version执行以下命令以安装Node.js 20.x。
# 若需更新版本可通过打开链接获取最新的指令:https://deb.nodesource.com/
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs当前使用源中最高版本10.x,若需要使用13.x或14.x请使用源码编译安装。
apt-get install -y gdb安装编译Qt源码所需的其他环境(为方便执行指令,将存在安装失败可能的包安装指令拆分为单独一条)。
# 安装perl git ninja
sudo apt-get install -y perl git ninja-build
# 安装python3、python html5lib
sudo apt-get install -y python3 python-is-python3 python3-pip python3-pexpect
# Qt启用WebEngine则必须html5lib
pip install html5lib
# 安装enssential nss3
sudo apt-get install -y build-essential libnss3 libnss3-dev
# 更新pthread和动态加载相关的库,也可以通过升级libc的方式来升级
sudo apt-get install -y libpthread*
sudo apt-get install -y ldd
# Qt开启WebEngine组件必须
sudo apt-get install -y gperf bison flex ruby
# Qt开启WebEngine组件必须安装xcb和x11系列组件
#【请注意】必须先安装xcb-protocol组件,否则将导致部分xcb组件库安装失败
sudo apt-get install -y xcb-proto
# 先全系安装libxcb和libx11打头的库
sudo apt-get install -y libxcb*
sudo apt-get install -y libx11*
# proxy, 若安装失败,则先进行apt-get update,然后再尝试
sudo apt-get install -y libproxy1v5 libproxy-dev
# update后仍然不行,则安装libproxy打头的所有库
#sudo apt-get install -y libproxy*
# GSSAPI,若安装失败,则先进行apt-get update,然后再尝试
sudo apt-get install -y libgssapi-krb5-2 libgssapi-krb5-dev
# update后仍然不行,则安装libgssapi打头的所有库
#sudo apt-get install -y libgssapi*
# 安装directFB
sudo apt-get install -y directfb*
# 安装vulkan
sudo apt-get install -y libvulkan*
# 安装harfBuzz,若安装失败,则进行apt-get update,然后再尝试
sudo apt-get install -y libharfbuzz-dev
# update后仍然不行,则安装libharfbuzz打头的所有库
#sudo apt-get install -y libharfbuzz*
# 安装strp
sudo apt-get install -y libsrtp*
# 安装libatspi2
sudo apt-get install -y libatspi2.0-dev
# 安装蓝牙库
sudo apt-get install -y libbluetooth-dev
# 安装ICU
sudo apt-get install -y libicu-dev
#【非必须】Jasper需要手动通过包进行安装,仅ARM需要
#sudo apt-get install -y libjasper-dev
#-jasper arm only
#sudo apt install libassimp-dev depend on jasper
#sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
#-gstreamer -gstreamer-no-multimonitor -I/usr/include/gstreamer-1.0 -L/usr/lib/x86_64-linux-gnu -lgstreamer-1.0
#PKG_CONFIG="/usr/bin/pkg-config" PKG_CONFIG_PATH="/path/to/your/gstreamer/pkgconfig/files"
# 安装llTTNG,【请务必保证指令中的包顺序,否则将无法安装】
# 包安装顺序可参考 https://lttng.org 在debian类系统上安装的指导手册
sudo apt-get install -y lttng-modules-dkms liblttng-ust-dev lttng-tools
# 批量安装以下组件
sudo apt-get install -y libcups2-dev \
libcap-dev \
libdrm-dev \
libfontconfig1-dev \
libfreetype6-dev \
freeglut3-dev \
dbus \
libdbus-1-dev \
libdbus-glib-1-dev \
libudev-dev \
libudev1 \
libpci-dev \
libasound2-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libbz2-dev \
libb2-dev \
libatkmm-1.6-dev \
libinput-dev \
zstd \
libzstd-dev \
libsystemd-dev \
libgbm-dev \
libjpeg-dev \
libmd4c-dev \
libmtdev-dev \
libwayland-dev \
libsm6 \
libsm-dev \
libice6 \
libice-dev \
libdouble-conversion-dev \
libpq-dev \
libsqlite3-dev \
libgtk-3-dev \
libwebp-dev \
libmng-dev \
libmng2 \
gyp \
libjsoncpp-dev \
libopus-dev \
libminizip-dev \
libavutil-dev \
libavformat-dev \
libavcodec-dev \
libevent-dev \
libvpx-dev \
libsnappy-dev \
libre2-dev \
libprotobuf-dev \
protobuf-compiler \
libgssglue-dev \
libtiff-dev \
gawk \
wget \
diffstat \
texinfo \
chrpath \
socat \
cpio \
xz-utils \
debianutils \
iputils-ping \
liblz4-tool \
file \
locales
# 安装OpenGL 2.x
sudo apt-get install -y \
mesa-common-dev \
libegl1-mesa-dev \
libopengl-dev \
libgl1-mesa-dev \
libglu1-mesa-dev \
libglfw3-dev \
libgles2-mesa-dev \
libglib2.0-0 \
libglib2.0-dev \
libegl1-mesa \
libsdl1.2-dev
# 按组件名安装所必须的xcb组件,避免部分组件在批量安装时未安装
sudo apt-get install -y \
libxcb1-dev \
libxcb-glx0-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-keysyms1-dev \
libxcb-randr0-dev \
libxcb-render0-dev \
libxcb-render-util0-dev \
libxcb-shape0-dev \
libxcb-shm0-dev \
libxcb-sync-dev \
libxcb-util-dev \
libxcb-util0-dev \
libxcb-xfixes0-dev \
libxcb-xinerama0-dev \
libxcb-xkb-dev \
libxcb-imdkit0 \
libxcb-imdkit-dev \
libxcb-composite0-dev \
libxcb-composite0 \
libxcb-cursor0 \
libxcb-cursor-dev \
libxcb-damage0 \
libxcb-damage0-dev \
libxcb-doc \
libxcb-dpms0 \
libxcb-dpms0-dev \
libxcb-dri2-0-dev \
libxcb-dri3-dev \
libxcb-ewmh2 \
libxcb-ewmh-dev \
libxcb-glx0-dev \
libxcb-present-dev \
libxcb-record0 \
libxcb-record0-dev \
libxcb-res0-dev \
libxcb-screensaver0 \
libxcb-screensaver0-dev \
libxcb-xf86dri0 \
libxcb-xf86dri0-dev \
libxcb-xinput-dev \
libxcb-xrm0 \
libxcb-xrm-dev \
libxcb-xtest0 \
libxcb-xtest0-dev \
libxcb-xv0-dev \
libxcb-xvmc0 \
libxcb-xvmc0-dev
# 按组件名安装所必须的x11组件,避免部分组件在批量安装时未安装
sudo apt-get install -y \
libgstreamer1.0-dev \
libhunspell-dev \
libpulse-dev \
libts-dev \
libxtst-dev \
libxslt-dev \
libxslt1-dev \
libxss-dev \
libx11-dev \
libx11-xcb-dev
libxcomposite-dev \
libxcursor-dev \
libxdamage-dev \
libxdamage1 \
libxext-dev \
libxfixes-dev \
libxi-dev \
libxkbcommon-doc \
libxkbcommon-dev \
libxkbcommon-x11-dev \
libxkbcommon-tools \
libxkbfile-dev \
libxrandr-dev \
libxrender-dev \
libxshmfence-dev \
libxshmfence1 \
libx11-doc \
libx11-freedesktop-desktopentry-perl \
libx11-guitest-perl \
libx11-keyboard-perl \
libx11-protocol-other-perl \
libx11-windowhierarchy-perl \
libx11-xcb-perl\
libxine2-bin \
libxine2-dev \
libxine2-ffmpeg \
libxine2-misc-plugins \
libxine2-plugins \
libxproto-devsudo apt-get install -y libsctp-devsudo apt-get install -y krb5-user krb5-config libkrb5-devbrotli
sudo apt-get install -y brotli libbrotli-devHiRes wheel support
请注意,此组件安装后未能成功在配置过程中启用,此处仅记录作为后续解决问题的参考
sudo apt-get install - y libinput10 libhidapi-devdirectfb
sudo apt-get install -y libjpeg-dev libpng-dev libfreetype6-dev libfusion-dev libdirect-dev libdirectfb-devmysql
sudo apt-get install -y libmysqlclient-devffmpeg
sudo apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev请注意, 配置编译时启用的组件越多,编译占用内存和交换区越大,耗时越长。
# 设置QT插件调试,以便配置、编译过程输出详细错误信息
export QT_DEBUG_PLUGINS=1
# 配置编译
# 进入build-debug目录进行配置,release则进入build-release目录
../configure -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON \
-xcb -xcb-xlib -bundled-xcb-xinput -xkbcommon \
-fontconfig \
-sm \
-glib \
-opengl es2 \
-release \
-opensource -confirm-license \
-prefix ${PWD}/install \
-nomake tests \
-libproxy \
-sctp \
-libinput \
-sql-mysql \
-icu \
-openssl-linked -I/usr/local/include -I/usr/include -L/usr/local/lib64 -L/usr/lib/x86_64-linux-gnu -openssl-runtime \
-webengine-proprietary-codecs -webengine-developer-build -webengine-ffmpeg \
-make examples \
-force-debug-info \
-separate-debug-info \
-skip qtopcua
# 配置选项说明
# -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON, 指示使用CXX20标准
# -xcb -xcb-xlib -bundled-xcb-xinput -xkbcommon 此系列选项表示使用系统环境安装的xcb和x11组件;否则将自动检测,而自动检测下大概率会失败
# -fontconfig 表示使用系统安装的fontconfig库,否则将自动检测
# -sm 表示使用系统安装的libsm版本,否则将自动检测。在自动检测下,即使安装了满足要求的版本也无法找到SM
# -glib 表示使用系统安装的glib版本
# -opengl es2 表示使用系统安装的opengl版本库, es2表示启用ES2.0
# -release 表示编译release版本,-debug则表示编译debug版本。
# 请勿使用-debug-and-release而企图同时编译debug和release版本,该选项下不会生成完整的debug版本!
# 并且官方文档明确说明-debug-and-release仅适用于Windows平台编译,虽然在linux指定了也可以进行编译。
#
# -prefix ${PWD}/install 用于指定安装路径,此处${PWD}/install表示为当前路径下的install目录
# -opensource -confirm-license 表示确认使开源协议
# -nomake tests 表示不编译tests内容
#
# -openssl-linked -I/usr/local/include -I/usr/include -L/usr/local/lib64 -L/usr/lib/x86_64-linux-gnu -openssl-runtime,用于指定安装的OpenSSL 3.x以开启OpenSS 3
# 1. 请注意,本选项中-I指定的头文件路径和-L指定的库文件路径需要根据当前的目标编译版本debug或release,修改为对应debug或release的安装路径
# 2. 同时,需要在/etc/ld.so.conf中添加当前将要使用的编译安装的OpenSSL 3.x的debug或release动态库路径,然后执行ldconfig更新ld缓存再进行编译
#
# -libproxy 表示使用系统安装的proxy,并开启编译选项
# -sctp 表示使用系统安装的SCTP,并开启编译选项
# -libinput 表示使用系统安装的input
# -sql-mysql 表示使用系统安装的MySql并启用编译选项
# -icu 表示使用系统安装的ICU库
# -webengine-proprietary-codecs -webengine-developer-build -webengine-ffmpeg,表示启用WebEngine的codecs、developer、ffmpeg
#
# -make examples 表示编译示例项目
#
# -force-debug-info 标识强制为release生成debug信息
# -separate-debug-info 将调试信息单独生成存储
#
# -skip qtopcua 表示不编译qtopcua组件。当前由于启用OpenSSL 3.x导致无法检测到OpenSSL 1.1 和2.x,编译qtopcua依赖的open62541时将无法找到部分openssl的定义,故不进行qtopcua的编译
# 若需要编译qtopcua组件,可以在完成Qt编码编译后再单独使用OpenSSL 1.1和2.x进行编译
# 也可以自行下载支持OpenSSL 3.x的open62541 1.4版本,并在configure时指定open62541的安装信息,如“-DINPUT_open62541=system -DOPEN62541_INCDIR=/usr/local/include/open62541 -DOPEN62541_LIBDIR=/usr/local/lib”请注意, 若在配置中提示xcb和x11部分组件检测不到,请尝试重新单独安装所报错的组件,即使前序步骤已经成功安装了它们。如:
# 编译,未指定核心数量时由工具链自行调度
# 可根据编译环境条件在 --parallel后显式指定用于编译的CPU核心数量,如
# cmake --build . --parallel 12
cmake --build . --parallel
# 安装,将安装在配置时的-prefix指定的路径下
cmake --install .编译Qt帮助文档
完成和编译源码时一致的配置编译操作后,在build-*目录下执行:
# 仅编译docs
ninja docs
# 编译完成后安装docs
ninja install_docs6.1 Qt6.5.3源码中的编码错误
6.1.1 编译过程中部分文件报错uint32_t不是std中的符号
如qt3d/src/3rdparty/assimp/src/code/AssetLib/FBX/FBXBinaryTokenizer.cpp文件
问题原因:该文件引用的是c规范的头文件stdint.h而非c++规范的cstdint,导致类型std::uint32_t不属于std命名空间
解决版本:修改源码中的#include <stdint.h>为#include
6.1.2 open62541找不到OpenSSL EVxxx定义
该问题目前尚未解决,可采取以下方法:
1. 使用-skip qtopcua的方式跳过open62541的编译
2. 可以使用自行编译的支持OpenSSL 3.x的open62541 v1.4版本,并以指定系统安装版本的方式跳过Qt自带的open62541版本的编译(待验证)
3. 不使用OpenSSL 3.x而使用OpenSSL 1.1和2.x进而不会因为版本引起问题(待验证)
编译open62541请参照如下方法:
# 下载open62541 源码, 如1.4的
#使用指定openssl库路径去编译open62541
export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=/usr/local/include:$CMAKE_PREFIX_PATH
# 创建一个编译目录build在其下进行配置、编译
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_ENCRYPTION_OPENSSL=ON ..
make
make install Qt 6.5.3源码编译请参考《麒麟 V10-SP1-HWE-2303-x86_64(兆芯)版本 Qt 6.5.3 LTS开放源代码编译》
由于虚拟机有50GB左右,故未进行压缩,请直接下载kylin-v10-amd64整个目录。
地址:ftp://192.168.0.61:50000/devenv/qtools/release/kylin-v10-amd64
FTP用户名:shared
FTP密码: 74747412.1 帐户密码
| 用户名 | 密码 |
|---|---|
| dev | 7 |
| root | 7 |
请自行按需修改用户名和密码
2.2 组件信息
| 软件 | 版本 | 安装路径 |
|---|---|---|
| Qt Creator | 13.01 | /home/dev/opt/qtcreator-13.0.1 |
| Qt SDK | 6.5.3 LTS | /home/dev/opt/qt-6.5.3 |
| gcc | 13.1.0 | /usr/bin/x86_64-linux-gnu-gcc-13 |
| g++ | 13.1.0 | /usr/bin/x86_64-linux-gnu-g++-13 |
| cmake | 3.29.3 | /usr/local/bin |
| gdb | 10.2 | /usr/bin/gdb |
| python | 3.8.10 | /usr/bin/python3 |
| node.js | 20.13.1 | /usr/bin/node |
| openssl | 3.3.0.9 | /usr/local/bin |
| openssl | 1.1.1f | /usr/bin |
| clang | 12.x | /usr/lib |
| llvm | 12.x | /usr/lib |
# 查看当前会话的最大文件描述符限制
ulimit -n
# 此命令会输出当前的软限制大小,如“1024,表示当前用户可以打开的文件(包括TCP套接字)的最大数量# 通过以下指令并指定欲调整到的目标大小来临时调整
ulimit -n 目标大小
# 调整完成后可再次通过 ulimit -n来检查是否生效先编辑/etc/security/limits.conf文件,修改或增加以下内容
# 针对所有用户
# * 表示匹配所有用户名
# soft 表示为软限制
# hard表示为硬限制
# 1048576 为限制大小
* soft 1048576
* hard 1048576
# 针对指定用户进行调整时,仅需要将 * 替换为具体的用户名,如dev
dev soft 1048576
dev hard 1048576再修改/etc/pam.d/common-session,增加或修改以下内容
# 调整 session配置使用户登录时自动加载文件描述符限制
session required pam_limits.so然后重启操作系统使配置更新,完成重启后可再次通过命令确认调整内容是否生效。
cat /proc/sys/fs/file-max
# 或
sysctl fs.file-max# 临时修改,重启操作系统后失效
sudo sysctl -w fs.file-max=目标大小# 编辑 /etc/sysctl.conf,增加或修改以下内容
fs.file-max = 目标大小
# 使用以下命令或重启操作系统使其生效
sysctl -p# 使用sysctl -p命令时的输出结果中包含TCP的连接数量限制
# 如net.core、net.ipv4等信息
# 查看TCP半连接状态的队列大小限制(即等待连接的最大队列长度)
sysctl net.ipv4.tcp_max_syn_backlog
# 查看允许完成立的最大连接数量限制
sysctl net.core.somaxconn
# 查看允许使用的端口范围
sysctl net.ipv4.ip_local_port_rangesudo sysctl -w net.ipv4.tcp_max_syn_backlog=目标大小
sudo sysctl -w net.core.somaxconn=目标大小# 编辑/etc/sysctl.conf文件,增加或调整以下内容
net.ipv4.tcp_max_syn_backlog = 目标大小
net.core.somaxconn = 目标大小
# 使用sysctl -p或重启操作系统使其生效 export http_proxy=http://127.0.0.1:10809
# 使用http端口
export https_proxy=http://127.0.0.1:10809
export all_proxy=socks5://127.0.0.1:10808