CentOS初始化一系列开发环境记录

安装基础开发工具

使用yum安装基础开发工具包

1
2
3
4
5
6
# 列出Development Tools安装包
yum groupinfo "Development Tools"
# 安装Development Tools安装包
yum groupinstall "Development Tools" -y
# 安装tafcpp依赖 samba
yum install gcc gcc-c++ make libtool git wget openssl-devel sudo tcl samba -y

使用下载的二进制压缩包安装软件

把下载的压缩包放在~/目录,解压要安装的文件cmake gcc golang java nginx node/usr/local/devtools目录

1
mkdir devtools; for file in *.tar.gz; do tar -zxvf $file -C devtools; done; mv devtools /usr/local/;

直接升级gcc8

参考: https://explause.com/?p=61

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 首先安装RedHat的软件集合(SCLs)
yum install centos-release-scl -y
# 如果安装了GCC4.8就先卸载掉吧,防止冲突(会同步移除g++)
yum remove gcc -y
# 接下来就是安装GCC8以及对应的C++编译器:
yum install devtoolset-8 -y
# 临时生效,执行
scl enable devtoolset-8 bash
# 如果想要永久生效,可以执行。卸载的话需要手动编辑.bashrc文件,删除source scl_source enable devtoolset-8
echo 'source scl_source enable devtoolset-8' >> ~/.bashrc
# 可以刷新当前登陆用户的环境变量
source ~/.bashrc
# 然后控制台输入以下命令 显示gcc8即可安装成功
gcc -v

配置安装最新gcc13(容易报错)

参考谷歌搜索centos7 gcc upgrade

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 下载依赖及配置文件
yum install bzip2 -y
cd /usr/local/devtools/gcc-13.2.0
./contrib/download_prerequisites
mkdir build; cd build;
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make -j4 & make install
gcc --version
# 查看gcc的安装位置 whereis gcc 确定以及配置成功后可以将原先的版本删除
/usr/local/bin/gcc -v
# 配置新版本全局可用
ln -s /usr/local/bin/gcc /usr/bin/gcc
# 查看当前的动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6
# 查看更新后的动态库
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
# 安装后的动态库会位于/usr/local/lib64目录下,
# 其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX

安装nodejs

1
2
3
4
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm ls-remote
nvm install v20

配置环境变量

追加文本操作cat >> ~/.bashrc,按Ctrl+D组合键结束编辑

1
2
3
4
5
6
7
8
9
10
11
12

#把这个写到配置文件里 并生效配置文件
export GOROOT=/usr/local/devtools/go/
export PATH=$PATH:$GOROOT/bin
export GOPROXY=https://proxy.golang.com.cn

export PATH=$PATH:/usr/local/devtools/cmake-3.26.5-linux-x86_64/bin

export JAVA_HOME=/usr/local/devtools/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

生效配置文件source ~/.bashrc

安装mysql

  • 使用yum在线安装
  • 使用tar压缩包解压安装

安装mysql方式一,使用yum在线安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 将最新的MySQL GPG密钥导入到您的系统中
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 首先,您需要在您的系统上启用MySQL 5.7社区发布的yum存储库。MySQL的官方网站上提供了用于yum存储库配置的rpm包。
curl -sSLO https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 现在我们已经验证了文件没有损坏或更改,我们将安装程序包
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
yum install mysql mysql-server -y
# 启动mysql服务
service mysqld start
# 查看密码
grep 'temporary password' /var/log/mysqld.log
# 使用以下命令修改密码
mysqladmin -uroot -p密码 password Admin@123
# 测试连接
mysql -uroot -pAdmin@123

安装mysql方式二,离线rpm-bundle安装

首先下载mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar
下载地址: https://downloads.mysql.com/archives/community/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 在/root/mysql目录解压
mkdir mysql
cd mysql
tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar
# 安装离线rpm包
rpm -ivh *.rpm --force --nodeps
# 初始化
mysqld --initialize --console
chown -R mysql:mysql /var/lib/mysql/
# 启动mysql服务并设置开机自启
systemctl start mysqld
systemctl enable mysqld
# 查看临时密码
grep 'temporary password' /var/log/mysqld.log
# 使用以下命令修改密码
mysqladmin -uroot -p密码 password Admin@123
# 测试连接
mysql -uroot -pAdmin@123

安装mysql方式三,解压二进制安装(容易报错)

如果执行初始化报错libaio.so.1 cannot open shared object file,安装yum install libaio*即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 在/root目录一句话解压
mkdir devtools; for file in *.tar.gz; do tar -zxvf $file -C devtools; done; mv devtools /usr/local/;
# 把这个写到配置文件里,路径不同,记得要修改路径
echo "export PATH=$PATH:/usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/bin" >> ~/.bashrc
# 给mysql目录下的所有文件加执行权限
chmod -R 775 /usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64
# 切换到mysql目录下
cd /usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64
# 生效mysqld命令
source ~/.bashrc
# 执行初始化命令。生成临时数据库密码,我的密码是u1W,kepJCkq3。把--initialize换成--initialize-insecure登陆数据库可无密码登录
mysqld --user=root --initialize --basedir=/usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64 --datadir=/usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/data
# 复制启动文件到/etc/init.d/目录
cp -ar /usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysqld
# 添加mysql文件
vim /etc/my.cnf
# 在[mysqld]指定一个用户root三个目录basedir datadir socket
[mysqld]
user=root
basedir=/usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64
datadir=/usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/data
socket=/usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysql.sock
# 给 mysql 的配置文件加执行权限
chmod -R 775 /etc/my.cnf
# 启动mysql服务 &表示后台启动。配置文件目录在默认的/etc/my.cnf下可以省去--defaults-file参数,配置文件添加了user可以省去--user参数
mysqld --defaults-file=/etc/my.cnf --user=root &
# 查看mysql服务是否启动
ps -ef|grep -v grep|grep mysql
# 检查3306端口是否监听
netstat -lntup|grep 3306
# 如果参数加入了-insecure就使用空密码登录。如果提示没有/tmp/mysql.sock文件就是mysql服务没有启动成功,启动成功会提示mysql.sock文件位置在哪的
mysql -uroot -S /usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysql.sock
# 如果参数未加入-insecure就使用生成的密码登录
mysql -uroot -pu1W,kepJCkq3 -S /usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysql.sock
# 修改密码为123456 快捷键ctrl+d退出
set password for root@localhost = password('123456');
# 退出,再次登录
mysql -uroot -p123456 -S /usr/local/devtools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysql.sock

配置mysql字符集

追加文本操作cat >> /etc/my.cnf,按Ctrl+D组合键结束编辑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 禁用SSL
skip_ssl

# 跳过密码策略
validate_password=off

# add charset
[client]
# 客户端字符集
default-character-set=utf8mb4

[mysql]
# 客户端字符集
default-character-set=utf8mb4

[mysqld]
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
# 数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server=utf8mb4
# 数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_unicode_ci

# 调整 MySQL 配置以支持更大的索引长度
[mysqld]
innodb_file_format=Barracuda
innodb_file_per_table=1
innodb_large_prefix=1

重启mysql

1
service mysqld restart

允许远程机器登录

1
2
3
4
mysql -uroot -pAdmin@123
use mysql;
update user set host = '%' where user = 'root';
flush privileges;

配置samba服务

1
2
3
4
5
6
# 将root添加到samba账号里面,如果是其他账号就替换成你自己的账号,会提示输入两次密码,这个密码就是访问samba的密码
smbpasswd -a root
# 把/etc/sysconfig/selinux中的SELINUX=enforcing该成SELINUX=disabled
vim /etc/sysconfig/selinux
# 重启服务
service smb restart

允许开机自启

1
2
3
4
5
6
systemctl restart firewalld
systemctl restart mysqld
systemctl restart smb
systemctl disable firewalld
systemctl enable mysqld
systemctl enable smb

重启系统

1
reboot
Author: chacebai
Link: http://www.spyhex.com/2024/init-install-devtools-series/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.