1. 准备一个新的Ubuntu22.04系统,并做好快照用于随时还原使用
已搭建,略。
2. 一个服务有几种安装到系统中的方法,可以以Nginx服务为例进行说明
3. 对比几种不同的安装方法,各有什么优缺点
4. 从源码构建服务时,常用的几条命令是什么
5. 到Nginx官网下载Nginx最新版源码,并执行构建,启动,访问其页面
下载源码
wget http://nginx.org/download/nginx-1.26.2.tar.gz解压源码包:
tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2安装编译依赖:
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev配置编译参数:
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_gzip_static_module编译并启动:
make
sudo make install
/usr/local/nginx/sbin/nginx输入IP然后查看是否跳转到nginx的默认网页
6. 使用源码构建Python最新版本,启动服务并进入Python命令行,print任意内容
下载源码包:
wget https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz解压源码包
tar -zxvf Python-3.13.0.tgz
cd Python-3.13.0安装依赖:
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev \
libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev \
tk-dev libffi-dev配置编译选项:
./configure --enable-optimizations编译源码:
make -j$(nproc)安装到系统路径:
sudo make installprintf输出:

7. 使用源码构建Redis最新版本,启动服务并进入Redis命令行,set任意内容并get
下载源码包:
wget https://github.com/redis/redis/archive/refs/tags/8.0.2.tar.gz -O redis-8.0.2.tar.gz解压源码包:
tar -zxvf redis-8.0.2.tar.gz
cd redis-8.0.2安装编译依赖:
sudo apt install -y build-essential tcl编译:
make安装到系统路径:
sudo make install复制默认配置并启动
cp redis.conf /etc/redis.conf
redis-server /etc/redis.conf实验:

8. 到Mysql官方网站下载其源码并构建,启动服务,连接到mysql
1.准备编译环境
# 更新系统包
sudo apt update
# 安装必要的依赖
sudo apt install -y git cmake build-essential libssl-dev libncurses5-dev libaio-dev libwrap0-dev libldap2-dev libtirpc-dev libsasl2-dev libnuma-dev libprotobuf-dev protobuf-compiler2.下载mysql源码
# 克隆MySQL官方仓库
git clone https://github.com/mysql/mysql-server.git
cd mysql-server
# 切换到稳定版本分支(可选)
git checkout 8.03.构建Mysql
# 创建构建目录
mkdir build
cd build
# 使用cmake配置构建
cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_SSL=system -DWITH_BOOST=/path/to/boost
# 如果提示需要boost,可以这样处理:
# 下载boost
sudo apt install libboost-all-dev
# 或让cmake自动下载boost
cmake .. -DCMAKE_BUILD_TYPE=Release -DWITH_SSL=system -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost
# 编译(这会花费较长时间)
make -j$(nproc)4.安装mysql
# 安装到系统
sudo make install
# 创建mysql用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
# 创建数据目录
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql5.初始化数据库
# 初始化MySQL数据目录
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
# 记录临时密码(在初始化输出中)
# 或者使用--initialize-insecure跳过密码设置6.启动服务
# 方法1:直接启动(前台)
sudo /usr/local/mysql/bin/mysqld --user=mysql --datadir=/usr/local/mysql/data
# 方法2:使用systemd(推荐)
# 创建systemd服务文件
sudo tee /etc/systemd/system/mysql.service > /dev/null <<EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=notify
User=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 重新加载systemd并启动服务
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo systemctl enable mysql7.连接到mysql
# 使用root用户连接
/usr/local/mysql/bin/mysql -u root -p
# 如果使用--initialize-insecure初始化,则初始无密码:
/usr/local/mysql/bin/mysql -u root
# 连接后建议修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';