Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
4b95824
chore: 加 .gitattributes 统一换行符为 LF
sixiaopangai Aug 28, 2026
a17226f
fix(ros): 修复国内 ROS2 镜像 404、密钥导入失败等问题
sixiaopangai Oct 9, 2026
7b06de4
fix(source): 一键换源支持 Debian 11+/arm64 与 Ubuntu 24.04 deb822
sixiaopangai Oct 9, 2026
2302840
fix(base): 兼容无 sudo 容器、缺 distro 模块、残留临时目录
sixiaopangai Oct 9, 2026
df42f04
fix(install): 引导脚本下载 install.py 不校验证书,与其它下载一致
sixiaopangai Oct 12, 2026
4f7ac94
feat(ros): 新增全自动安装模式(菜单 21),换源改为备份
sixiaopangai Oct 12, 2026
2bdc733
fix(base): CmdTask 读 stdout/stderr 互相等待导致卡死
sixiaopangai Oct 12, 2026
4b6bd6b
feat(ros): 全自动模式下系统镜像中途断连时自动换镜像续装
sixiaopangai Oct 12, 2026
8bf432f
fix(ros): 导入密钥不再依赖 gpg 和 curl
sixiaopangai Oct 12, 2026
72872cb
fix(source): 自动换系统镜像时排除同一台服务器的 http/https 地址
sixiaopangai Oct 12, 2026
f5823ba
refactor(menu): 主菜单按用途重新分组排序,编号不变
sixiaopangai Oct 12, 2026
49e7f41
fix(rosenv): 修复 ROS2 工作空间在中文路径下编译消息包报错
sixiaopangai Oct 12, 2026
8c7f476
feat(ros): 新增菜单 22 一键安装常用功能包,全自动模式可附带安装
sixiaopangai Oct 12, 2026
ed43ab9
fix: 终端不是 UTF-8 时不再一直提示 Finish! Please Try Again!
sixiaopangai Oct 12, 2026
1124ea0
fix(ros): 安装前等待 apt 锁并修复上次被打断的安装
sixiaopangai Oct 12, 2026
ba2efc2
feat(ros): 常用功能包加入手柄遥控(joy / teleop_twist_joy / jstest)
sixiaopangai Oct 12, 2026
0b15c37
docs(menu): 菜单 22 说明里注明包含手柄遥控
sixiaopangai Oct 12, 2026
1bb7233
fix(ros): 公钥随一键安装发布并重试,修复全新系统上密钥服务器兜底失败
sixiaopangai Oct 12, 2026
99ef5db
fix(translator): 查不到 IP 所在国家时按系统语言显示,不再一律英文
sixiaopangai Oct 12, 2026
41cdc18
fix(ros): 探测镜像包时带 apt 的 User-Agent,避免中科大被误判为包已删除
sixiaopangai Oct 26, 2026
c72e50d
feat: 系统源只用 http 并改为实测下载速度; 小白/高手模式并入菜单 1; 推广改为服务器配置按场景展示
sixiaopangai Oct 27, 2026
85e5f81
docs(readme): 菜单 1 改为小白/高手两种模式
sixiaopangai Oct 27, 2026
8ac3344
fix(source): 测速连接超时再试一次,避免把最快的镜像误判为连不上
sixiaopangai Oct 27, 2026
2d21170
feat(ros): 小白模式确认菜单去掉附带常用功能包的选项, 改为装完后在清单里提示菜单 22
sixiaopangai Oct 27, 2026
3056f0e
feat: [0] 改为返回上一步; 高手模式换源前先检测当前系统源并给出建议
sixiaopangai Oct 27, 2026
cb1953e
fix(source): 识别腾讯云/阿里云服务器自带的内网镜像为国内源
sixiaopangai Oct 27, 2026
39e2694
feat(ads): 菜单前加商品链接和公众号提示; 装好后二维码改为淘宝+公众号并排并缩小; 菜单 [1] 用醒目颜色
sixiaopangai Oct 27, 2026
1da46b1
feat(ads): 推广内容改读官网 /api/install/ads; 启动时上报运行次数到官网
sixiaopangai Oct 27, 2026
b36da21
feat: 按导师口径上报统计; 推广只放淘宝直链; 下载加超时重试
sixiaopangai Oct 29, 2026
3168db2
fix(wechat): 官方版装前处理旧版冲突并按真实结果提示; 下线桌面版 2.1.1; 改进一键清理
sixiaopangai Oct 29, 2026
858f754
perf: 加快进入主菜单的速度
sixiaopangai Oct 29, 2026
77485cb
fix: 打字机恢复原速; 启动时显示当前系统; /tmp 下运行不再自动重放上次选项
sixiaopangai Oct 29, 2026
a28c0ef
fix(docker): 公钥下载失败时不再报安装成功, 并自动清理残留的坏源
sixiaopangai Oct 29, 2026
745e5db
fix: 修复过时/失效的安装选项, 失败时不再报安装成功
sixiaopangai Oct 29, 2026
857b355
fix: GitHub 桌面版改用 shiftkey 官方镜像; Docker 支持 Debian/树莓派/Mint
sixiaopangai Oct 29, 2026
8757d4a
fix: 容器控制命令在没有 Docker 权限时给出提示
sixiaopangai Oct 29, 2026
7acf975
feat(proxy): 默认推荐 FlClash, 按加速站依次尝试下载, 显示进度条
sixiaopangai Nov 2, 2026
bd2ccbe
feat(ai-tools): 菜单 18 扩展为 7 个 AI 编程工具; 下载器挪到 base.py 共用
sixiaopangai Nov 2, 2026
d3cb0aa
feat: AI 编程工具装完给出使用说明; 新增菜单 23 一键安装 Chrome
sixiaopangai Nov 2, 2026
30ac98e
docs(ai-tools): dsh 提示补充会自动打开默认浏览器、要先选模型
sixiaopangai Nov 2, 2026
ca95796
docs(chrome): 菜单 23 改为强烈推荐设为默认浏览器, 装完提示怎么设
sixiaopangai Nov 2, 2026
4ed7773
feat(proxy): [14] 推荐订阅链接改为从官网后台读取, 读不到时用默认
sixiaopangai Nov 3, 2026
82c3f81
fix(proxy): 装完给启动项注入环境变量修虚拟机白屏; 改推荐 Clash Verge
sixiaopangai Nov 3, 2026
47ecdcb
feat(ai-tools): [18] 删除 Cockpit Tools; CC Switch 中转链接改为官网后台可配置
sixiaopangai Nov 3, 2026
f07f46d
fix(ai-tools): [18] 菜单描述去掉已删除的 Cockpit Tools
sixiaopangai Nov 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 统一按 LF 处理换行符。
#
# 为什么需要:这个仓库里 core.autocrlf 默认是 false 且此前没有 .gitattributes,
# git 会原样存盘上的字节。Windows 上某些编辑器保存文件时会顺手改成 CRLF,
# 于是 `git status` 会把整个仓库都标成已修改——实测一次就是 37 个文件、
# 5608 行增删,而 `git diff --ignore-all-space` 是空的,一行真实内容都没变。
# 这会淹没真正的改动,评审也没法看。
#
# text=auto 让 git 在计算对象时把换行符归一成 LF,工作区是 CRLF 也不再算差异;
# eol=lf 保证检出到工作区时也是 LF。
#
# 对 install 这个文件尤其重要:它是用户 `source` 执行的 shell 脚本,
# 跑在 Linux 上,CRLF 会导致 bad interpreter 之类的报错。
* text=auto eol=lf

# 二进制文件不做任何转换。仓库目前没有二进制文件,
# 这几行是防止以后加了图片等资源被误转换。
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.svg text eol=lf
*.zip binary
*.gz binary
*.tar binary
*.deb binary
59 changes: 48 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,38 @@

## 工具列表

已支持工具列表:
已支持工具列表(方括号里是菜单编号):

- 一键安装:ROS(支持ROS和ROS2,树莓派Jetson) [贡献@小鱼](https://github.com/fishros)
- 一键安装:VsCode(支持amd64和arm64) [贡献@小鱼](https://github.com/fishros)
- 一键安装:github桌面版(小鱼常用的github客户端) [贡献@小鱼](https://github.com/fishros)
- 一键安装:nodejs开发环境(通过nodejs可以预览小鱼官网噢) [贡献@小鱼](https://github.com/fishros)
- 一键配置:rosdep(小鱼的rosdepc,又快又好用) [贡献@小鱼](https://github.com/fishros)
- 一键配置:ROS环境(快速更新ROS环境设置,自动生成环境选择) [贡献@小鱼](https://github.com/fishros)
- 一键配置:系统源(更换系统源,支持全版本Ubuntu系统) [贡献@小鱼](https://github.com/fishros)
- 一键安装:Docker(支持amd64和arm64) [贡献@alyssa](https://github.com/alyssa1024)
- 一键安装:cartographer 贡献 [@小鱼](https://github.com/fishros) & [@Catalpa](https://github.com/Y-zi)
- 一键安装:微信客户端 [贡献@小鱼](https://github.com/fishros)
**ROS安装**
- [1] 一键安装(推荐):ROS(小白/高手两种模式,自动识别系统并换源,支持ROS1/ROS2/树莓派/Jetson) [贡献@小鱼](https://github.com/fishros)
- [11] 一键安装:ROS Docker版(支持所有版本ROS/ROS2,系统版本不匹配时使用)
- [16] 一键安装:系统自带ROS(仅供特殊情况下使用)

**ROS开发工具**
- [4] 一键配置:ROS环境(快速更新ROS环境设置,自动生成环境选择,修复中文路径编译报错) [贡献@小鱼](https://github.com/fishros)
- [3] 一键安装:rosdepc(小鱼的国内版rosdep,又快又好用) [贡献@小鱼](https://github.com/fishros)
- [22] 一键安装:ROS常用功能包(导航Nav2/建图slam_toolbox、Cartographer/键盘、手柄遥控等)
- [9] 一键安装:Cartographer(仅支持ROS1:Ubuntu16/18/20) 贡献 [@小鱼](https://github.com/fishros) & [@Catalpa](https://github.com/Y-zi)
- [12] 一键安装:MicroROS开发环境(PlatformIO,支持FishBot)

**换源与网络**
- [5] 一键配置:系统源(更换国内源,支持Ubuntu/Debian全版本) [贡献@小鱼](https://github.com/fishros)
- [13] 一键配置:Python国内源
- [17] 一键配置:Docker代理(支持VPN+代理服务两种模式)
- [14] 一键安装:科学上网代理工具

**开发工具**
- [7] 一键安装:VSCode(支持amd64和arm64) [贡献@小鱼](https://github.com/fishros)
- [8] 一键安装:Docker(支持amd64和arm64) [贡献@alyssa](https://github.com/alyssa1024)
- [6] 一键安装:Node.js开发环境 [贡献@小鱼](https://github.com/fishros)
- [2] 一键安装:GitHub桌面版(小鱼常用的GitHub客户端) [贡献@小鱼](https://github.com/fishros)
- [18] 一键安装/卸载:OpenCode(AI编程助手)

**日常软件**
- [10] 一键安装:微信客户端 [贡献@小鱼](https://github.com/fishros)
- [15] 一键安装:QQ for Linux

> 菜单编号固定不变(自动化配置按编号选择),新增工具只会用新编号。



Expand All @@ -24,6 +44,23 @@
source <(wget -qO- http://fishros.com/install)
```

装 ROS 在菜单里输入 `1`,接着选安装模式:不知道怎么选的选 `1` 小白模式,确认后脚本会自动识别系统、
测速换源、挑选可用的镜像和对应的 ROS 版本,中途不用再做选择,装完会列出替你选了什么;
想自己指定镜像源和版本的选 `2` 高手模式。

### 用自己的服务器测试新版本

把仓库文件放到任意 HTTP 服务器上,把 `install` 第一行改成你的地址,然后在测试机上运行即可,
后续所有工具脚本都会从这个地址下载:

```
# 服务器上(仓库目录内)
sed -i "1s#.*#export FISHROS_URL=http://<服务器IP>:8080/#" install
python3 -m http.server 8080
# 测试机上
wget http://<服务器IP>:8080/install -O fishros && . fishros
```

## 如何自动选择(Dockerfile中使用)

目前一键安装支持从配置文件自动输入选项,你需要手动运行一次一键安装,使用完毕后会自动产生 `/tmp/fish_install.yaml`。
Expand Down
4 changes: 2 additions & 2 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
- [一键安装](./README.md)
- 高效工具
- [一键安装](./README.md)
- 高效工具
- [Md编辑器Typora](./install/Typora.md)
26 changes: 20 additions & 6 deletions install
Original file line number Diff line number Diff line change
@@ -1,15 +1,29 @@
export FISHROS_URL=http://mirror.fishros.com/install/

SUDO=''
if [ "$(id -u)" -ne 0 ];then
SUDO='sudo'
fi

# 上次运行被中断时 /tmp/fishinstall 会残留且属主是 root, 普通用户再下载会因权限不足静默失败,
# 结果要么没有菜单直接退出, 要么跑的是旧脚本, 所以每次先清掉
$SUDO rm -rf /tmp/fishinstall/
mkdir -p /tmp/fishinstall/tools/translation/assets
wget $FISHROS_URL/install.py -O /tmp/fishinstall/install.py 2>>/dev/null
# 与 install.py 里其它下载保持一致不校验证书: 老系统证书库过旧、树莓派等开机时钟不准时, 服务器跳转到 https 也能下载
wget -q -T 15 -t 3 --no-check-certificate $FISHROS_URL/install.py -O /tmp/fishinstall/install.py
source /etc/profile

SUDO=''
if [ $UID -ne 0 ];then
SUDO='sudo'
if [ -s /tmp/fishinstall/install.py ]; then
# 已经能导入就不再跑 apt: 每次都要读软件包列表(约 1s), 系统自动更新占着 apt 锁时还会卡住
if ! python3 -c "import distro, yaml" 2> /dev/null; then
$SUDO apt install python3-distro python3-yaml -y
fi
# sudo 默认会清掉环境变量, 显式把 FISHROS_URL 传进去, 否则后续工具一律从默认地址下载(自建服务器测试时会拿到旧版)
$SUDO env FISHROS_URL="$FISHROS_URL" python3 /tmp/fishinstall/install.py
else
echo "下载一键安装脚本失败: ${FISHROS_URL}install.py"
echo "请检查网络后重试(能否打开 ${FISHROS_URL}install.py)"
fi
$SUDO apt install python3-distro python3-yaml -y
$SUDO python3 /tmp/fishinstall/install.py
$SUDO rm -rf /tmp/fishinstall/

if [ -f fishros ]; then
Expand Down
Loading