鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    一键安装崩溃

    已定时 已固定 已锁定 已移动
    一键安装
    一键安装 dockerfile
    3
    3
    160
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • S
      shangui
      最后由 编辑

      45.28
      45.28 欢迎使用一键更换系统源,本工具由作者小鱼提供
      45.95 RUN Choose Task:[请输入括号内的数字]
      46.77 请选择换源方式,如果不知道选什么请选2
      46.80 [1]:仅更换系统源
      46.86 [2]:更换系统源并清理第三方源
      46.95 [0]:quitTraceback (most recent call last):
      47.00 File "/tmp/fishinstall/install.py", line 134, in <module>
      47.00 main()
      47.00 File "/tmp/fishinstall/install.py", line 123, in main
      47.00 run_tool_file(tools[code]['tool'].replace("/","."))
      47.00 File "/tmp/fishinstall/tools/base.py", line 1476, in run_tool_file
      47.00 if tool.run()==False: return False
      47.00 File "/tmp/fishinstall/tools/tool_config_system_source.py", line 225, in run
      47.00 self.change_sys_source()
      47.00 File "/tmp/fishinstall/tools/tool_config_system_source.py", line 177, in change_sys_source
      47.00 self.clean_old_source()
      47.00 File "/tmp/fishinstall/tools/tool_config_system_source.py", line 75, in clean_old_source
      47.00 code,result = ChooseTask(dic, "请选择换源方式,如果不知道选什么请选2").run()
      47.00 File "/tmp/fishinstall/tools/base.py", line 1089, in run
      47.00 return ChooseTask.__choose(self.dic,self.tips,self.array)
      47.00 File "/tmp/fishinstall/tools/base.py", line 1073, in __choose
      47.00 PrintUtils.print_text(tr.tr("为您从配置文件找到默认选项:"),choose_item)
      47.00 File "/tmp/fishinstall/tools/base.py", line 835, in print_text
      47.00 print(values,end=end,flush=flush)
      47.00 TypeError: end must be None or a string, not dict
      47.00
      47.00
      47.00 检测到程序发生异常退出,请打开:https://fishros.org.cn/forum 携带如下内容进行反馈
      47.00
      47.00
      47.00 标题:使用一键安装过程中遇到程序崩溃
      47.00 47.00
      47.00 本次运行详细日志文件已保存至 /tmp/fishros_install.log

      Dockerfile:25

      24 | # 鱼香ros 一键换源
      25 | >>> RUN cd /home/rbt
      26 | >>> && apt update
      27 | >>> && apt install -y wget python3 python3-yaml python3-distro apt-utils
      28 | >>> && echo "chooses:\n" > fish_install.yaml
      29 | >>> && echo "- {choose: 5, desc: '一键安装:ROS(支持ROS和ROS2,树莓派Jetson)'}\n" >> fish_install.yaml
      30 | >>> && echo "- {choose: 2, desc: 更换源继续安装}\n" >> fish_install.yaml
      31 | >>> && echo "- {choose: 1, desc: 清理三方源}\n" >> fish_install.yaml
      32 | >>> && wget http://fishros.com/install -O fishros && /bin/bash fishros
      33 | >>> # 清理 fish_install.yaml
      34 | >>> && rm -rf /home/rbt/fish_install.yaml
      35 |

      ERROR: failed to solve: process "/bin/sh -c cd /home/rbt && apt update && apt install -y wget python3 python3-yaml python3-distro apt-utils && echo "chooses:\n" > fish_install.yaml && echo "- {choose: 5, desc: '一键安装:ROS(支持ROS和ROS2,树莓派Jetson)'}\n" >> fish_install.yaml && echo "- {choose: 2, desc: 更换源继续安装}\n" >> fish_install.yaml && echo "- {choose: 1, desc: 清理三方源}\n" >> fish_install.yaml && wget http://fishros.com/install -O fishros && /bin/bash fishros && rm -rf /home/rbt/fish_install.yaml" did not complete successfully: exit code: 1

      小鱼小 1 条回复 最后回复 回复 引用 0
      • 小伊小
        机器人小伊
        最后由 编辑

        从您提供的错误日志来看,问题出现在Python脚本的print函数使用中。具体来说,print函数的end参数被错误地设置为一个字典(dict)类型,而它应该是一个字符串或者None。这导致了TypeError: end must be None or a string, not dict这个错误。

        这个问题很可能是由于某个地方的代码修改或者配置错误导致的。在您的Docker构建过程中,您正在运行一个名为fishros的脚本,这个脚本内部调用了print_text函数,并且错误地传递了end参数。

        解决步骤:

        1. 检查并修改源代码:

          • 如果您有权限修改/tmp/fishinstall/tools/base.py中的print_text函数,请确保print函数调用时end参数是一个字符串或未设置(默认为None)。
          • 查看print_text函数的调用处,确认end参数的值。
        2. 临时修复:

          • 如果不方便修改源代码,您可以尝试在运行Docker镜像前,先手动下载fishros脚本并修改其中的print_text函数,确保end参数正确。
        3. 联系脚本作者:

          • 如果这个脚本是第三方提供的,您可以联系作者报告这个错误,并请求修复。
        4. 查看文档和社区:

          • 访问https://fishros.org.cn/forum查看是否有其他用户遇到相同的问题或解决方案。
        5. 重新构建Docker镜像:

          • 在修复或更新脚本后,重新构建您的Docker镜像,并检查是否还有问题。

        Dockerfile中的命令

        您的Dockerfile中的命令看起来基本正确,但是确保在执行/bin/bash fishros之前,所有的依赖和环境都已正确设置。特别是确保/home/rbt目录存在且可写。

        示例修正

        如果问题确实出在print_text函数的end参数上,您可以尝试在本地修改print_text函数,例如:

        def print_text(values, end='\n', flush=False):
            print(values, end=end, flush=flush)
        

        确保end参数有一个默认值(如'\n'),这样在调用时不提供end参数时就不会出错。然后重新构建并运行Docker镜像。


        以上为生成回答,仅供参考~

        我是小伊,已接入ChatGpt,所有回复,仅供参考~

        1 条回复 最后回复 回复 引用 0
        • 小鱼小
          小鱼 技术大佬 @shangui
          最后由 编辑

          @shangui 正在修复,请10min后尝试

          新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

          1 条回复 最后回复 回复 引用 0
          • 第一个帖子
            最后一个帖子
          皖ICP备16016415号-7
          Powered by NodeBB | 鱼香ROS