├── ros-noetic-desktop.sh ├── ros-melodic-desktop.sh ├── ros-melodic-ros-base.sh ├── ros-noetic-ros-base.sh ├── .github ├── dependabot.yml └── workflows │ ├── add-git-tag.yml │ ├── test-scripts.yml │ ├── test-scripts-eol.yml │ └── test-url.yml ├── .chglog ├── config.yml └── CHANGELOG.tpl.md ├── LICENSE ├── ros-kinetic-ros-base.sh ├── ros-kinetic-desktop.sh ├── ros-noetic-ros-base-main.sh ├── ros-noetic-desktop-main.sh ├── ros-noetic-desktop-testing.sh ├── ros-noetic-ros-base-testing.sh ├── ros-melodic-ros-base-main.sh ├── ros-melodic-desktop-main.sh ├── ros-melodic-desktop-testing.sh ├── ros-melodic-ros-base-testing.sh ├── README.md └── CHANGELOG.md /ros-noetic-desktop.sh: -------------------------------------------------------------------------------- 1 | ros-noetic-desktop-main.sh -------------------------------------------------------------------------------- /ros-melodic-desktop.sh: -------------------------------------------------------------------------------- 1 | ros-melodic-desktop-main.sh -------------------------------------------------------------------------------- /ros-melodic-ros-base.sh: -------------------------------------------------------------------------------- 1 | ros-melodic-ros-base-main.sh -------------------------------------------------------------------------------- /ros-noetic-ros-base.sh: -------------------------------------------------------------------------------- 1 | ros-noetic-ros-base-main.sh -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Maintain dependencies for GitHub Actions 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | -------------------------------------------------------------------------------- /.chglog/config.yml: -------------------------------------------------------------------------------- 1 | style: github 2 | template: CHANGELOG.tpl.md 3 | info: 4 | title: CHANGELOG 5 | repository_url: https://github.com/Tiryoh/ros_setup_scripts_ubuntu 6 | options: 7 | commits: 8 | filters: 9 | Type: 10 | - feat 11 | - fix 12 | - docs 13 | # - style 14 | - refactor 15 | - perf 16 | # - test 17 | # - chore 18 | commit_groups: 19 | title_maps: 20 | feat: Features 21 | fix: Bug Fixes 22 | docs: Documentation Updates 23 | refactor: Code Refactoring 24 | perf: Performance Improvements 25 | header: 26 | pattern: "^(\\w*)\\:\\s(.*)$" 27 | pattern_maps: 28 | - Type 29 | - Subject 30 | notes: 31 | keywords: 32 | - BREAKING CHANGE 33 | -------------------------------------------------------------------------------- /.github/workflows/add-git-tag.yml: -------------------------------------------------------------------------------- 1 | name: Add git tag 2 | on: 3 | pull_request: 4 | types: [closed] 5 | jobs: 6 | release-candidate: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: checkout 10 | uses: actions/checkout@v4 11 | - name: Add tag 12 | if: startsWith(github.event.pull_request.title, 'release') && github.event.pull_request.merged == true 13 | env: 14 | PR_TITLE: ${{ github.event.pull_request.title }} 15 | run: | 16 | echo $PR_TITLE | grep -e "release.*" || exit 1 17 | git remote set-url origin https://${GITHUB_ACTOR}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git 18 | git tag $(echo $PR_TITLE | sed -E 's/.* (v[0-9\-\.]*)/\1/g') 19 | git tag -l 20 | git push origin --tags -------------------------------------------------------------------------------- /.github/workflows/test-scripts.yml: -------------------------------------------------------------------------------- 1 | name: Test Scripts 2 | on: 3 | push: 4 | branches: 5 | - master 6 | paths: 7 | - ".github/workflows/test-scripts.yml" 8 | - "ros-noetic-**.sh" 9 | pull_request: 10 | branches: 11 | - master 12 | paths: 13 | - ".github/workflows/test-scripts.yml" 14 | - "ros-noetic-**.sh" 15 | schedule: 16 | - cron: "5 1 * * 6" # Weekly on Saturdays at 01:05(GMT) 17 | 18 | jobs: 19 | noetic: 20 | runs-on: ubuntu-20.04 21 | strategy: 22 | matrix: 23 | package: [desktop, ros-base] 24 | ros-repo: [main, testing] 25 | env: 26 | ROS_DISTRO: noetic 27 | steps: 28 | - uses: actions/checkout@v4 29 | - name: Test 30 | run: | 31 | ./ros-${ROS_DISTRO}-${{ matrix.package }}-${{ matrix.ros-repo }}.sh 32 | -------------------------------------------------------------------------------- /.chglog/CHANGELOG.tpl.md: -------------------------------------------------------------------------------- 1 | {{ range .Versions }} 2 | 3 | ## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }}) 4 | 5 | {{ range .CommitGroups -}} 6 | ### {{ .Title }} 7 | 8 | {{ range .Commits -}} 9 | * {{ .Subject }} 10 | {{ end }} 11 | {{ end -}} 12 | 13 | {{- if .RevertCommits -}} 14 | ### Reverts 15 | 16 | {{ range .RevertCommits -}} 17 | * {{ .Revert.Header }} 18 | {{ end }} 19 | {{ end -}} 20 | 21 | {{- if .MergeCommits -}} 22 | ### Pull Requests 23 | 24 | {{ range .MergeCommits -}} 25 | * {{ .Header }} 26 | {{ end }} 27 | {{ end -}} 28 | 29 | {{- if .NoteGroups -}} 30 | {{ range .NoteGroups -}} 31 | ### {{ .Title }} 32 | 33 | {{ range .Notes }} 34 | {{ .Body }} 35 | {{ end }} 36 | {{ end -}} 37 | {{ end -}} 38 | {{ end -}} -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Daisuke Sato 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ros-kinetic-ros-base.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "xenial" ]] || exit 1 5 | ROS_DISTRO=kinetic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8 | 9 | sudo apt install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt update || echo "" 12 | 13 | sudo apt install -y ros-${ROS_DISTRO}-ros-base 14 | python --version 2>&1 | grep -q "2.7" || exit 1 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update 19 | 20 | sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools python3-vcstool 21 | 22 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 23 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 24 | 25 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 26 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 27 | 28 | grep -F "ROS_IP" ~/.bashrc || 29 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 30 | 31 | grep -F "ROS_MASTER_URI" ~/.bashrc || 32 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 33 | 34 | echo "" 35 | echo "Success installing ROS ${ROS_DISTRO}" 36 | echo "Run 'source ~/.bashrc'" 37 | echo "" 38 | echo "If any error occurs, please refer to the following URL." 39 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 40 | echo "" 41 | -------------------------------------------------------------------------------- /ros-kinetic-desktop.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "xenial" ]] || exit 1 5 | ROS_DISTRO=kinetic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8 | 9 | sudo apt install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt update || echo "" 12 | 13 | sudo apt install -y ros-${ROS_DISTRO}-desktop-full 14 | python --version 2>&1 | grep -q "2.7" || exit 1 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update 19 | 20 | sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools python3-vcstool 21 | 22 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 23 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 24 | 25 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 26 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 27 | 28 | grep -F "ROS_IP" ~/.bashrc || 29 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 30 | 31 | grep -F "ROS_MASTER_URI" ~/.bashrc || 32 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 33 | 34 | echo "" 35 | echo "Success installing ROS ${ROS_DISTRO}" 36 | echo "Run 'source ~/.bashrc'" 37 | echo "" 38 | echo "If any error occurs, please refer to the following URL." 39 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 40 | echo "" 41 | -------------------------------------------------------------------------------- /ros-noetic-ros-base-main.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "focal" ]] || exit 1 5 | ROS_DISTRO=noetic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8 | 9 | sudo apt-get install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt-get update || echo "" 12 | 13 | sudo apt-get install -y ros-${ROS_DISTRO}-ros-base 14 | sudo apt-get install -y python3-rosdep 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update 19 | 20 | sudo apt-get install -y python3-rosinstall python3-rosinstall-generator python3-wstool build-essential python3-vcstool 21 | sudo apt-get install -y python3-catkin-tools python3-osrf-pycommon 22 | 23 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 24 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 25 | 26 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 27 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 28 | 29 | grep -F "ROS_IP" ~/.bashrc || 30 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 31 | 32 | grep -F "ROS_MASTER_URI" ~/.bashrc || 33 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 34 | 35 | echo "" 36 | echo "Success installing ROS ${ROS_DISTRO}" 37 | echo "Run 'source ~/.bashrc'" 38 | echo "" 39 | echo "If any error occurs, please refer to the following URL." 40 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 41 | echo "" 42 | -------------------------------------------------------------------------------- /ros-noetic-desktop-main.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "focal" ]] || exit 1 5 | ROS_DISTRO=noetic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8 | 9 | sudo apt-get install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt-get update || echo "" 12 | 13 | sudo apt-get install -y ros-${ROS_DISTRO}-desktop-full 14 | sudo apt-get install -y python3-rosdep 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update 19 | 20 | sudo apt-get install -y python3-rosinstall python3-rosinstall-generator python3-wstool build-essential python3-vcstool 21 | sudo apt-get install -y python3-catkin-tools python3-osrf-pycommon 22 | 23 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 24 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 25 | 26 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 27 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 28 | 29 | grep -F "ROS_IP" ~/.bashrc || 30 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 31 | 32 | grep -F "ROS_MASTER_URI" ~/.bashrc || 33 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 34 | 35 | echo "" 36 | echo "Success installing ROS ${ROS_DISTRO}" 37 | echo "Run 'source ~/.bashrc'" 38 | echo "" 39 | echo "If any error occurs, please refer to the following URL." 40 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 41 | echo "" 42 | -------------------------------------------------------------------------------- /ros-noetic-desktop-testing.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "focal" ]] || exit 1 5 | ROS_DISTRO=noetic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros-testing/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-testing.list' 8 | 9 | sudo apt-get install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt-get update || echo "" 12 | 13 | sudo apt-get install -y ros-${ROS_DISTRO}-desktop-full 14 | sudo apt-get install -y python3-rosdep 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update 19 | 20 | sudo apt-get install -y python3-rosinstall python3-rosinstall-generator python3-wstool build-essential python3-vcstool 21 | sudo apt-get install -y python3-catkin-tools python3-osrf-pycommon 22 | 23 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 24 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 25 | 26 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 27 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 28 | 29 | grep -F "ROS_IP" ~/.bashrc || 30 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 31 | 32 | grep -F "ROS_MASTER_URI" ~/.bashrc || 33 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 34 | 35 | echo "" 36 | echo "Success installing ROS ${ROS_DISTRO}" 37 | echo "Run 'source ~/.bashrc'" 38 | echo "" 39 | echo "If any error occurs, please refer to the following URL." 40 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 41 | echo "" 42 | -------------------------------------------------------------------------------- /ros-noetic-ros-base-testing.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "focal" ]] || exit 1 5 | ROS_DISTRO=noetic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros-testing/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-testing.list' 8 | 9 | sudo apt-get install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt-get update || echo "" 12 | 13 | sudo apt-get install -y ros-${ROS_DISTRO}-ros-base 14 | sudo apt-get install -y python3-rosdep 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update 19 | 20 | sudo apt-get install -y python3-rosinstall python3-rosinstall-generator python3-wstool build-essential python3-vcstool 21 | sudo apt-get install -y python3-catkin-tools python3-osrf-pycommon 22 | 23 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 24 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 25 | 26 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 27 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 28 | 29 | grep -F "ROS_IP" ~/.bashrc || 30 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 31 | 32 | grep -F "ROS_MASTER_URI" ~/.bashrc || 33 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 34 | 35 | echo "" 36 | echo "Success installing ROS ${ROS_DISTRO}" 37 | echo "Run 'source ~/.bashrc'" 38 | echo "" 39 | echo "If any error occurs, please refer to the following URL." 40 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 41 | echo "" 42 | -------------------------------------------------------------------------------- /ros-melodic-ros-base-main.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "bionic" ]] || exit 1 5 | ROS_DISTRO=melodic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8 | 9 | sudo apt install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt update || echo "" 12 | 13 | sudo apt install -y ros-${ROS_DISTRO}-ros-base python-rosdep 14 | python --version 2>&1 | grep -q "2.7" || exit 1 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update --include-eol-distros # https://discourse.ros.org/t/rosdep-and-eol-distros/7640 19 | 20 | sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools python3-vcstool 21 | 22 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 23 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 24 | 25 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 26 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 27 | 28 | grep -F "ROS_IP" ~/.bashrc || 29 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 30 | 31 | grep -F "ROS_MASTER_URI" ~/.bashrc || 32 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 33 | 34 | echo "" 35 | echo "Success installing ROS ${ROS_DISTRO}" 36 | echo "Run 'source ~/.bashrc'" 37 | echo "" 38 | echo "If any error occurs, please refer to the following URL." 39 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 40 | echo "" 41 | -------------------------------------------------------------------------------- /ros-melodic-desktop-main.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "bionic" ]] || exit 1 5 | ROS_DISTRO=melodic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8 | 9 | sudo apt install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt update || echo "" 12 | 13 | sudo apt install -y ros-${ROS_DISTRO}-desktop-full python-rosdep 14 | python --version 2>&1 | grep -q "2.7" || exit 1 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update --include-eol-distros # https://discourse.ros.org/t/rosdep-and-eol-distros/7640 19 | 20 | sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools python3-vcstool 21 | 22 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 23 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 24 | 25 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 26 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 27 | 28 | grep -F "ROS_IP" ~/.bashrc || 29 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 30 | 31 | grep -F "ROS_MASTER_URI" ~/.bashrc || 32 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 33 | 34 | echo "" 35 | echo "Success installing ROS ${ROS_DISTRO}" 36 | echo "Run 'source ~/.bashrc'" 37 | echo "" 38 | echo "If any error occurs, please refer to the following URL." 39 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 40 | echo "" 41 | -------------------------------------------------------------------------------- /ros-melodic-desktop-testing.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "bionic" ]] || exit 1 5 | ROS_DISTRO=melodic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros-testing/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-testing.list' 8 | 9 | sudo apt install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt update || echo "" 12 | 13 | sudo apt install -y ros-${ROS_DISTRO}-desktop-full python-rosdep 14 | python --version 2>&1 | grep -q "2.7" || exit 1 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update --include-eol-distros # https://discourse.ros.org/t/rosdep-and-eol-distros/7640 19 | 20 | sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools python3-vcstool 21 | 22 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 23 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 24 | 25 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 26 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 27 | 28 | grep -F "ROS_IP" ~/.bashrc || 29 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 30 | 31 | grep -F "ROS_MASTER_URI" ~/.bashrc || 32 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 33 | 34 | echo "" 35 | echo "Success installing ROS ${ROS_DISTRO}" 36 | echo "Run 'source ~/.bashrc'" 37 | echo "" 38 | echo "If any error occurs, please refer to the following URL." 39 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 40 | echo "" 41 | -------------------------------------------------------------------------------- /ros-melodic-ros-base-testing.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -eu 3 | 4 | [[ "$(lsb_release -sc)" == "bionic" ]] || exit 1 5 | ROS_DISTRO=melodic 6 | 7 | sudo sh -c 'echo "deb http://packages.ros.org/ros-testing/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-testing.list' 8 | 9 | sudo apt install -y curl 10 | curl -k https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-key add - 11 | sudo apt update || echo "" 12 | 13 | sudo apt install -y ros-${ROS_DISTRO}-ros-base python-rosdep 14 | python --version 2>&1 | grep -q "2.7" || exit 1 15 | 16 | ls /etc/ros/rosdep/sources.list.d/20-default.list > /dev/null 2>&1 && sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 17 | sudo rosdep init 18 | rosdep update --include-eol-distros # https://discourse.ros.org/t/rosdep-and-eol-distros/7640 19 | 20 | sudo apt install -y python-rosinstall python-rosinstall-generator python-wstool build-essential python-catkin-tools python3-vcstool 21 | 22 | grep -F "source /opt/ros/${ROS_DISTRO}/setup.bash" ~/.bashrc || 23 | echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc 24 | 25 | grep -F `catkin locate --shell-verbs` ~/.bashrc || 26 | echo "source `catkin locate --shell-verbs`" >> ~/.bashrc 27 | 28 | grep -F "ROS_IP" ~/.bashrc || 29 | echo "export ROS_IP=127.0.0.1" >> ~/.bashrc 30 | 31 | grep -F "ROS_MASTER_URI" ~/.bashrc || 32 | echo "export ROS_MASTER_URI=http://\$ROS_IP:11311" >> ~/.bashrc 33 | 34 | echo "" 35 | echo "Success installing ROS ${ROS_DISTRO}" 36 | echo "Run 'source ~/.bashrc'" 37 | echo "" 38 | echo "If any error occurs, please refer to the following URL." 39 | echo "https://github.com/Tiryoh/ros_setup_scripts_ubuntu/" 40 | echo "" 41 | -------------------------------------------------------------------------------- /.github/workflows/test-scripts-eol.yml: -------------------------------------------------------------------------------- 1 | name: Test Scripts (EOL) 2 | on: 3 | push: 4 | branches: 5 | - master 6 | paths: 7 | - ".github/workflows/test-scripts-eol.yml" 8 | - "ros-kinetic-**.sh" 9 | - "ros-melodic-**.sh" 10 | pull_request: 11 | branches: 12 | - master 13 | paths: 14 | - ".github/workflows/test-scripts-eol.yml" 15 | - "ros-kinetic-**.sh" 16 | - "ros-melodic-**.sh" 17 | schedule: 18 | - cron: "5 1 * * 6" # Weekly on Saturdays at 01:05(GMT) 19 | 20 | jobs: 21 | # kinetic: 22 | # runs-on: ubuntu-latest 23 | # container: ubuntu:xenial 24 | # strategy: 25 | # matrix: 26 | # package: [desktop, ros-base] 27 | # env: 28 | # ROS_DISTRO: kinetic 29 | # steps: 30 | # - uses: actions/checkout@v3 31 | # - name: Test 32 | # run: | 33 | # apt-get update 34 | # DEBIAN_FRONTEND=noninteractive apt-get install -yq wget curl git build-essential vim sudo lsb-release locales bash-completion tzdata 35 | # ./ros-${ROS_DISTRO}-${{ matrix.package }}.sh 36 | 37 | melodic: 38 | runs-on: ubuntu-latest 39 | container: ubuntu:bionic 40 | strategy: 41 | matrix: 42 | package: [desktop, ros-base] 43 | env: 44 | ROS_DISTRO: melodic 45 | steps: 46 | - name: Pre-install 47 | run: | 48 | apt-get update 49 | DEBIAN_FRONTEND=noninteractive apt-get install -yq wget curl git build-essential vim sudo lsb-release locales bash-completion tzdata libc6 50 | # Ubuntu 16/18 can't run Node 20, so stick to older actions: https://github.com/actions/checkout/issues/1590 51 | echo "GHA_USE_NODE_20=false" >> $GITHUB_ENV 52 | echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV 53 | - uses: actions/checkout@v3 54 | - name: Test 55 | run: | 56 | ./ros-${ROS_DISTRO}-${{ matrix.package }}-main.sh 57 | -------------------------------------------------------------------------------- /.github/workflows/test-url.yml: -------------------------------------------------------------------------------- 1 | name: Test URL 2 | on: 3 | push: 4 | branches: 5 | - master 6 | paths: 7 | - ".github/workflows/test-url.yml" 8 | - "**.sh" 9 | pull_request: 10 | branches: 11 | - master 12 | paths: 13 | - ".github/workflows/test-url.yml" 14 | - "**desktop.sh" 15 | - "**ros-base.sh" 16 | schedule: 17 | - cron: "5 1 * * 6" # Weekly on Saturdays at 01:05(GMT) 18 | 19 | jobs: 20 | kinetic: 21 | strategy: 22 | matrix: 23 | package: [desktop, ros-base] 24 | runs-on: ubuntu-latest 25 | steps: 26 | - uses: actions/checkout@master 27 | 28 | - name: Verify shorten-URL 29 | env: 30 | PACKAGE_VERSION: ${{ matrix.package }} 31 | run: | 32 | curl -Ls -o run.sh -w %{url_effective} http://u.ty0.jp/ros-kinetic-$PACKAGE_VERSION | tee url.txt 33 | diff run.sh ros-kinetic-$PACKAGE_VERSION.sh 34 | diff -w url.txt <(echo https://raw.githubusercontent.com/Tiryoh/ros_setup_scripts_ubuntu/master/ros-kinetic-$PACKAGE_VERSION.sh) 35 | melodic: 36 | strategy: 37 | matrix: 38 | package: [desktop, ros-base] 39 | runs-on: ubuntu-latest 40 | steps: 41 | - uses: actions/checkout@master 42 | 43 | - name: Verify shorten-URL 44 | env: 45 | PACKAGE_VERSION: ${{ matrix.package }} 46 | run: | 47 | curl -Ls -o run.sh -w %{url_effective} http://u.ty0.jp/ros-melodic-$PACKAGE_VERSION | tee url.txt 48 | diff run.sh ros-melodic-$PACKAGE_VERSION-main.sh 49 | diff -w url.txt <(echo https://raw.githubusercontent.com/Tiryoh/ros_setup_scripts_ubuntu/master/ros-melodic-$PACKAGE_VERSION-main.sh) 50 | noetic: 51 | strategy: 52 | matrix: 53 | package: [desktop, ros-base] 54 | runs-on: ubuntu-latest 55 | steps: 56 | - uses: actions/checkout@master 57 | 58 | - name: Verify shorten-URL 59 | env: 60 | PACKAGE_VERSION: ${{ matrix.package }} 61 | run: | 62 | curl -Ls -o run.sh -w %{url_effective} http://u.ty0.jp/ros-noetic-$PACKAGE_VERSION | tee url.txt 63 | diff run.sh ros-noetic-$PACKAGE_VERSION-main.sh 64 | diff -w url.txt <(echo https://raw.githubusercontent.com/Tiryoh/ros_setup_scripts_ubuntu/master/ros-noetic-$PACKAGE_VERSION-main.sh) 65 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ros_setup_scripts_ubuntu 2 | 3 | [![Test Scripts](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/workflows/Test%20Scripts/badge.svg?branch=master)](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/actions?query=workflow%3A%22Test+Scripts%22+branch%3Amaster) 4 | [![Test URL](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/workflows/Test%20URL/badge.svg?branch=master)](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/actions?query=workflow%3A%22Test+URL%22+branch%3Amaster) 5 | 6 | unofficial ROS setup scripts to use from shorten-url, https://u.ty0.jp 7 | 8 | ROS 2 Version: https://github.com/Tiryoh/ros2_setup_scripts_ubuntu 9 | 10 | ## Usage 11 | 12 | Access https://u.ty0.jp for details. 13 | 14 | * Noetic 15 | * To install `ros-noetic-ros-base`, run the following command after downloading this repository. 16 | 17 | ```sh 18 | ./ros-noetic-ros-base.sh 19 | ``` 20 | 21 | * To install `ros-noetic-desktop-full`, run the following command after downloading this repository. 22 | 23 | ```sh 24 | ./ros-noetic-desktop.sh 25 | ``` 26 | 27 | * Melodic (EOL) 28 | * To install `ros-melodic-ros-base`, run the following command after downloading this repository. 29 | 30 | ```sh 31 | ./ros-melodic-ros-base.sh 32 | ``` 33 | 34 | * To install `ros-melodic-desktop-full`, run the following command after downloading this repository. 35 | 36 | ```sh 37 | ./ros-melodic-desktop.sh 38 | ``` 39 | 40 | * Kinetic (EOL) 41 | * To install `ros-kinetic-ros-base`, run the following command after downloading this repository. 42 | 43 | ```sh 44 | ./ros-kinetic-ros-base.sh 45 | ``` 46 | 47 | * To install `ros-kinetic-desktop-full`, run the following command after downloading this repository. 48 | 49 | ```sh 50 | ./ros-kinetic-desktop.sh 51 | ``` 52 | 53 | ## License 54 | 55 | Copyright (c) 2020 Daisuke Sato 56 | 57 | This repository is released under the MIT License, see [LICENSE](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/blob/master/LICENSE). 58 | Unless attributed otherwise, everything in this repository is under the MIT License. 59 | 60 | ### Acknowledgements 61 | 62 | * ryuichiueda/ros_setup_scripts_Ubuntu18.04_desktop 63 | * Copyright (c) 2016 Ryuichi UEDA 64 | * MIT License 65 | * https://github.com/ryuichiueda/ros_setup_scripts_Ubuntu18.04_desktop/blob/master/LICENSE 66 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## [v0.4.1](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/compare/v0.4.0...v0.4.1) (2021-12-03) 4 | 5 | ### Bug Fixes 6 | 7 | * Fix ros-noetic-*-main installer ([#19](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/pull/19)) 8 | 9 | ### Documentation Updates 10 | 11 | * Add link to ROS 2 setup scripts 12 | 13 | 14 | ## [v0.4.0](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/compare/v0.3.0...v0.4.0) (2020-07-30) 15 | 16 | ### Documentation Updates 17 | 18 | * Add test status badge 19 | 20 | ### Features 21 | 22 | * Enable catkin-tools for ROS Noetic ([#12](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/issues/12)) 23 | 24 | 25 | 26 | ## [v0.3.0](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/compare/v0.2.0...v0.3.0) (2020-05-24) 27 | 28 | ### Features 29 | 30 | * Add ROS Noetic (main) ([#7](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/issues/7)) 31 | * Add ROS Noetic (ros-testing) ([#6](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/issues/6)) 32 | 33 | 34 | 35 | ## [v0.2.0](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/compare/v0.1.0...v0.2.0) (2020-05-23) 36 | 37 | ### Features 38 | 39 | * Add ROS Melodic (ros-testing) ([#5](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/issues/5)) 40 | 41 | 42 | 43 | ## [v0.1.0](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/compare/v0.0.2...v0.1.0) (2020-05-12) 44 | 45 | ### Documentation Updates 46 | 47 | * Add example usage 48 | 49 | ### Features 50 | 51 | * Execute only with Python 2 ([#4](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/issues/4)) 52 | * Hide unnecessary output ([#3](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/issues/3)) 53 | 54 | 55 | 56 | ## [v0.0.2](https://github.com/Tiryoh/ros_setup_scripts_ubuntu/compare/v0.0.1...v0.0.2) (2020-02-15) 57 | 58 | ### Bug Fixes 59 | 60 | * Fix abnormal termination 61 | 62 | ### Documentation Updates 63 | 64 | * Update description 65 | 66 | ### Features 67 | 68 | * Add ros-kinetic-ros-base install script 69 | * Add ros-kinetic-desktop-full install script 70 | * Update the instruction message for user 71 | * Add an instruction message for user 72 | 73 | 74 | 75 | ## v0.0.1 (2020-01-16) 76 | 77 | ### Bug Fixes 78 | 79 | * Fix unbound variable error 80 | 81 | ### Documentation Updates 82 | 83 | * Update git-chglog settings 84 | * Add git-chglog settings 85 | * Update package name 86 | * Initial commit 87 | 88 | ### Features 89 | 90 | * Add ros-melodic-ros-base install script 91 | * Add ros-melodic-desktop install script 92 | 93 | --------------------------------------------------------------------------------