|
|
@@ -0,0 +1,113 @@
|
|
|
+# 使用 apt-mirror 创建本地镜像
|
|
|
+1. 安装必要工具
|
|
|
+```
|
|
|
+sudo apt update
|
|
|
+sudo apt install apt-mirror
|
|
|
+```
|
|
|
+2. 配置 apt-mirror
|
|
|
+编辑配置文件 /etc/apt/mirror.list:
|
|
|
+```
|
|
|
+sudo vi /etc/apt/mirror.list
|
|
|
+```
|
|
|
+添加以下内容:
|
|
|
+```
|
|
|
+ ############# config ##################
|
|
|
+ #
|
|
|
+ set base_path /var/spool/apt-mirror
|
|
|
+ #
|
|
|
+ # set mirror_path $base_path/mirror
|
|
|
+ # set skel_path $base_path/skel
|
|
|
+ # set var_path $base_path/var
|
|
|
+ # set cleanscript $var_path/clean.sh
|
|
|
+ # set defaultarch <running host architecture>
|
|
|
+ # set postmirror_script $var_path/postmirror.sh
|
|
|
+ # set run_postmirror 0
|
|
|
+ set nthreads 20
|
|
|
+ set _tilde 0
|
|
|
+ #
|
|
|
+ ############# end config ##############
|
|
|
+
|
|
|
+ # ROS 2 Humble 主仓库
|
|
|
+ deb [arch=amd64,arm64] http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ jammy main
|
|
|
+
|
|
|
+ # 清理不需要的架构(可选)
|
|
|
+ clean http://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu
|
|
|
+```
|
|
|
+3. 运行镜像同步
|
|
|
+```
|
|
|
+sudo apt-mirror
|
|
|
+```
|
|
|
+这个过程会下载所有指定的软件包,可能需要较长时间和大量磁盘空间。
|
|
|
+
|
|
|
+4. 配置 Web 服务器
|
|
|
+安装并配置 Nginx 来提供本地镜像服务:
|
|
|
+```
|
|
|
+ sudo apt install nginx
|
|
|
+ sudo ln -s /var/spool/apt-mirror/mirror/mirrors.tuna.tsinghua.edu.cn/ros2 /var/www/html/ros2
|
|
|
+```
|
|
|
+修改nginx配置
|
|
|
+```
|
|
|
+ # 停止 nginx
|
|
|
+ sudo systemctl stop nginx
|
|
|
+
|
|
|
+ # 创建正确的 nginx 配置
|
|
|
+ sudo vi /etc/nginx/sites-available/default
|
|
|
+ server {
|
|
|
+ listen 80 default_server;
|
|
|
+ listen [::]:80 default_server;
|
|
|
+
|
|
|
+ root /var/www/html;
|
|
|
+
|
|
|
+ index index.html index.htm;
|
|
|
+ autoindex on;
|
|
|
+
|
|
|
+ server_name _;
|
|
|
+
|
|
|
+ location / {
|
|
|
+ try_files $uri $uri/ =404;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ EOF
|
|
|
+
|
|
|
+ # 启动 nginx
|
|
|
+ sudo nginx -t
|
|
|
+ sudo systemctl start nginx
|
|
|
+```
|
|
|
+
|
|
|
+5. 测试访问:
|
|
|
+在服务器上测试
|
|
|
+```
|
|
|
+ curl -I http://localhost/ros2/ubuntu/
|
|
|
+ # 应该返回类似以下信息:
|
|
|
+ # HTTP/1.1 200 OK
|
|
|
+ # Server: nginx/xxx
|
|
|
+ # Content-Type: text/html
|
|
|
+```
|
|
|
+
|
|
|
+6. 如果无法访问,进行故障排除
|
|
|
+检查防火墙设置:
|
|
|
+```
|
|
|
+ # 查看防火墙状态
|
|
|
+ sudo ufw status
|
|
|
+
|
|
|
+ # 如果防火墙开启,允许 HTTP 流量
|
|
|
+ sudo ufw allow 'Nginx HTTP'
|
|
|
+ sudo ufw allow 80/tcp
|
|
|
+```
|
|
|
+检查 nginx 配置:
|
|
|
+```
|
|
|
+ # 测试 nginx 配置
|
|
|
+ sudo nginx -t
|
|
|
+ # 重新加载 nginx
|
|
|
+ sudo systemctl reload nginx
|
|
|
+
|
|
|
+ # 查看 nginx 错误日志
|
|
|
+ sudo tail -f /var/log/nginx/error.log
|
|
|
+```
|
|
|
+检查目录权限:
|
|
|
+```
|
|
|
+ # 确保 nginx 可以访问目录
|
|
|
+ sudo chmod -R 755 /var/spool/apt-mirror/
|
|
|
+ sudo chown -R www-data:www-data /var/www/html/
|
|
|
+ sudo chown -R www-data:www-data /var/spool/apt-mirror/
|
|
|
+```
|