1. 代理
1. curl
- 误使用代理的情况下
我在开启代理的情况下执行命令
curl http://repo.ros2.org/repos.key | sudo apt-key add -
,出现了如下错误url http://repo.ros2.org/repos.key | sudo apt-key add - % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (5) Could not resolve proxy: http gpg: no valid OpenPGP data found.
解决方法是,关闭当前终端和代理,然后重新开启终端执行如下命令。
sudo apt update && sudo apt install curl gnupg2 lsb-release curl http://repo.ros2.org/repos.key | sudo apt-key add -
对我而言,最常见的情况是,在打开代理的情况下使用终端,而git等默认不使用代理,因此会导致网络错误。但我并不想把代理设置为永久性的,因此我此处只给出了临时设置代理的方式。 - 开启代理
curl -x socks5://127.0.0.1:1024 http://www.google.com
其中,
-x
等同于--proxy
,socks5://127.0.0.1:1024
是代理的地址。 - 另一种开启方式
export http_proxy=http://your-ip-address:port/
例如我的代理地址为
localhost:8888
,因此我的实际输入命令为export http_proxy=http://localhost:8888/
取消代理
unset http_proxy # 或: unset https_proxy
2. git代理
在打开代理的情况下,直接打开终端使用git clone
,会提示如下错误
fatal: unable to access 'https://github.com/...': Could not resolve proxy: http
这是因为在使用代理的情况下打开的终端,该终端也使用了代理。但所在的git repository没有设置为使用代理,就发生了这个代理错误。使用env|grep -i proxy
查看此时使用的环境代理。我的输出如下
no_proxy=localhost,127.0.0.0/8,::1
https_proxy=http://http://localhost:8888/
NO_PROXY=localhost,127.0.0.0/8,::1
HTTPS_PROXY=http://http://localhost:8888/
HTTP_PROXY=http://http://localhost:8888/
http_proxy=http://http://localhost:8888/
使用git config --global http.proxy
查看git
使用代理的情况,注意这是全局设置。如果没有使用代理,不会有任何输出。要确保环境的代理状况和git的代理状况一致。为了加快git的速度,我选择给git添加代理。我输入git config --global http.proxy http://localhost:8888
以使用代理。使用git config --global http.proxy
查看此时使用的git
代理。我的输出如下
http://localhost:8888
此时已经可以正常使用了。这个设置会一直有效,不限于当前终端。如果需要取消代理,使用git config --global --unset http.proxy
即可。如果使用git config http.proxy http://localhost:8888
,则可以单个repository
设置为使用代理。取消代理的方法同上。
以上的代理都是关于http
的,如果是https
,只需要把http改成https即可,例如git config --global https.proxy
。
更多关于git
代理的操作,可以参考这里。
3. apt-get代理
参考链接。先使用以下命令显示自己当前环境使用的代理,后面是我实际使用的代理的情况。
env|grep -i proxy
HTTP_PROXY=http://http://localhost:8888/
https_proxy=http://http://localhost:8888/
http_proxy=http://http://localhost:8888/
no_proxy=localhost,127.0.0.0/8,::1
NO_PROXY=localhost,127.0.0.0/8,::1
HTTPS_PROXY=http://http://localhost:8888/
根据以上查询结果,使用以下命令开启apt-get
的代理。注意,该代理仅在当前终端页面有效。之后就可以使用代理执行命令。
sudo apt-get -o Acquire::http::proxy="http://localhost:8888/" update
If you start a terminal with proxy, this proxy are valid in all tabs in this terminal.
4. wget设置代理
jw@jc:~$ wget https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
--2023-02-27 14:01:54-- https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 0.0.0.0, ::
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... failed: Connection refused.
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... failed: Connection refused.
解决办法是正确地设置代理。首先查看当前的代理。
jw@jc:~$ env|grep -i proxy
no_proxy=localhost,127.0.0.0/8,::1
https_proxy=http://http://localhost:8888/
NO_PROXY=localhost,127.0.0.0/8,::1
HTTPS_PROXY=http://http://localhost:8888/
HTTP_PROXY=http://http://localhost:8888/
http_proxy=http://http://localhost:8888/
http
出现了两次,代理不正确,因此修改当前的代理。
jw@jc:~$ export https_proxy=http://localhost:8888/
jw@jc:~$ env|grep -i proxy
https_proxy=http://localhost:8888/
改正代理后再次尝试。
jw@jc:~$ wget https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
--2023-02-27 14:05:14-- https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8888... connected.
Proxy request sent, awaiting response... 200 OK
Length: 3967 (3.9K) [text/plain]
Saving to: ‘index-v4.yaml’
index-v4.yaml 100%[=================================================>] 3.87K --.-KB/s in 0s
2023-02-27 14:05:24 (10.4 MB/s) - ‘index-v4.yaml’ saved [3967/3967]
可能在使用命令rosdep update
时也会出现下面这种错误。解决方法是一样的。
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]:
<urlopen error [Errno -3] Temporary failure in name resolution> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml)
2. 域名教程
直接买就行。
CNAME
是把当前域名关联到另一个网址。输入这两个网址最后都会显示为购买的域名,内容为原网址指向的内容。
通常,购买的域名是一级域名,例如我的blue-stone.top
。可以在域名控制台中新建二级域名,例如social.blue-stone.top
,然后把这个二级域名和另外一个网址关联。这样就可以买一个域名,关联多个网站。
autoware经验分享
autoware.ai是早期版本,基于ros1,适用于简单场景,已经停止维护。autoware.auto基于ros2,代码和功能较少,适用于低速、封闭场景,是商业化版本。autoware.universe是商业化的版本,处于维护状态。
autoware的优点在于模块的整合,具体的单个功能包可能并不是最好的。不适合直接作为商用产品,更适合作为前期开发的demo。
Apollo的部分功能包不再开源,cyberRT社区也不如ROS社区。
ros2比ros1更加实时。
autoware可在Jetson Orin和ARM x86设备上运行。