Simon 4 dní pred
rodič
commit
cfe930be42
1 zmenil súbory, kde vykonal 113 pridanie a 0 odobranie
  1. 113 0
      docs/创建ros2镜像.md

+ 113 - 0
docs/创建ros2镜像.md

@@ -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/
+```