local

ubuntu

安装python3.12 on ubuntu 22.04
apt update && apt upgrade -y
apt install software-properties-common -y
add-apt-repository ppa:deadsnakes/ppa
apt update
apt install python3.12
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
python3 --version

编译安装python3.12 on ubuntu 22.04
apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
tar -xf Python-3.12.0.tgz
cd Python-3.12.*/
./configure --enable-optimizations
make -j 4
make altinstall
python3 --version
:python3.10.0
#切换版本:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 2
sudo update-alternatives --config python3
python3 --version
:python3.12.0
#修复apt_pkg
cd /usr/lib/python3/dist-packages/
ln -s apt_pkg.cpython-310-x86_64-linux-gnu.so apt_pkg.so

安装vim9.0
sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim

### 设置npm代理
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
### 设置淘宝源
npm config set registry http://registry.npm.taobao.org
### 系统默认源
npm config set registry https://registry.npmjs.org
npm get registry
npm config list

### 安装redis
apt install redis-server
#vim /etc/redis/redis.conf
#: supervised systemd
#: bind 127.0.0.1 ::1
systemctl restart redis
redis-cli

### 安装多版本jdk
# 列出所有包
apt install openjdk*

apt install openjdk-21-jdk

add-apt-repository ppa:linuxuprising/java
apt update
apt install oracle-java17-installer oracle-java17-set-default
#设置环境变量
#vim /etc/environment
JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

#安装免费证书
apt remove certbot
apt install snapd
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot

certbot --nginx
certbot certonly --nginx
certbot renew --dry-run

华为云ubuntu

挂载硬盘
fdist -l
blkid
mkdir /bak
临时挂载
mount /dev/vdb1 /bak
永久挂载
vim /etc/fstab
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX /dev/vdb1 /bak ext4 defaults 0 1

安装vim plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
nvm ls
nvm list available
nvm install stable
nvm install 14
nvm install v14.16.3
nvm use v14.16.3
nvm alias default V14.16.3

安装java-plantUML
apt install default-jre
apt install default-jdk
apt install graphviz
wget https://github.com/plantuml/plantuml/releases/download/v1.2023.12/plantuml-1.2023.12.jar

安装mysql
apt install mysql-server
systemctl start mysql.service
mysql_secure_installation

安装php fpm
apt update && sudo apt upgrade -y
apt install software-properties-common
#apt install software-properties-common ca-certificates lsb-release apt-transport-https -y
add-apt-repository ppa:ondrej/php
apt update

apt install php8.2-fpm
php-fpm8.2 -v
apt install php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-opcache php8.2-soap php8.2-zip php8.2-redis php8.2-intl -y

#vim /etc/php/8.2/fpm/php.ini
upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

#vim /etc/php/8.2/fpm/pool.d/www.conf
user = username 
group = username 
listen.owner = www-data    #与nginx.conf.user一致
listen.group = www-data

nginx -t
php8.2-fpm -t
systemctl restart nginx
systemctl restart php8.2-fpm

sudo设置

id user
sudo -l
sudo adduser username sudo
sudo visudo 配置新用户
groups username

CentOS7升级gcc、glibc

腾讯云安装

增加虚拟内存
swapon -s
dd if=/dev/zero of=/swapfile1 bs=1024 count=4194304
chmod 600 /swapfile1
mkswap /swapfile1
swapon /swapfile1
#vim /etc/fstab
/swapfile1    swap    swap    defaults    0    0
mount -a
删除虚拟内存
swapoff /swapfile1


升级编译安装gcc12
wget https://ftp.gnu.org/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.gz
tar -zxvf gcc-12.3.0.tar.gz
cd gcc-12.3.0
#安装依赖
./contrib/download_prerequisites
#安装当前gcc
yum install glibc-headers gcc-c++  gcc gmp  gmp-devel  mpfr  mpfr-devel  libmpc  libmpc-devel
mkdir build
cd build
../configure --prefix=/usr/local/gcc-12.3.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
make && make install
#卸载当前gcc
yum remove gcc
#配置gcc
ln -s /usr/local/gcc-12.3.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-12.3.0/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-12.3.0/bin/gcc-nm /usr/bin/gcc-nm
ln -s /usr/local/gcc-12.3.0/bin/gcc-ar /usr/bin/gcc-ar
ln -s /usr/local/gcc-12.3.0/bin/gcov /usr/bin/gcov
ln -s /usr/local/gcc-12.3.0/bin/gcov-dump /usr/bin/gcov-dump
ln -s /usr/local/gcc-12.3.0/bin/gcov-tool /usr/bin/gcov-tool
#vim /etc/profile
LD_LIBRARY_PATH=/usr/local/gcc-12.3.0/lib
source /etc/profile

rm -f /usr/lib64/libstdc++.so.25
ln -s /usr/local/gcc-12.3.0/lib64/libstdc++.so.6.0.30 /usr/lib64/libstdc++.so.6
ln -s /usr/local/gcc-12.3.0/lib64/libstdc++.so.6.0.30 /usr/lib64/libstdc++.so.6.0.30

安装make
wget https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz
cd make
./configure
make && make install
ln -s -f /usr/local/bin/make /usr/bin/make

yum install bison

#安装 glibc-2.38
#查看当前版本
strings /lib64/libc.so.6 | grep GLIBC_

wget https://ftp.gnu.org/gnu/glibc/glibc-2.38.tar.gz
tar -xzvf glibc-2.38.tar.gz
cd glibc-2.38
mkdir build && cd build

查看依赖版本
cat INSTALL | grep -E "newer|later"

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install
#查询版本
strings /usr/lib64/libc.so.6 | grep GLIBC


安装openssl
yum install -y make gcc perl-core pcre-devel wget zlib-devel
wget https://ftp.openssl.org/source/openssl-1.1.1k.tar.gz

./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib no-shared zlib-dynamic
make && make install
#vim /etc/profile.d/openssl.h
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
source /etc/profile.d/openssl.sh

安装python3.12
yum -y install bzip2-devel sqlite-devel openssl-devel readline-devel xz-devel xz-devel tk-devel gdbm-devel libffi-devel

wget https://www.python.org/ftp/python/3.12.9/Python-3.6.9.tgz
./configure --prefix=/usr/local/python3
./configure --enable-shared --prefix=/usr/local/python3 //生成动态库
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -s /usr/local/python3/lib/libpython3.7m.so /usr/lib/libpython3.7m.so //动态库
#vim /etc/profile
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib

pip3 install --upgrade pip

#yum install -y perl-core pcre-devel wget zlib-devel

安装vim9.0
git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp \
#--with-python-command=python2 \
--enable-pythoninterp=dynamic \
--enable-python3interp=dynamic \
--with-python3-config-dir=$(python3-config --configdir) \
--enable-perlinterp \
--enable-luainterp \
--enable-cscope \
--prefix=/usr

#make clean && make distclean
make VIMRUNTIMEDIR=/usr/share/vim/vim90

yum remove vim
make install