推荐《Software Security - building security In》

本文推荐《SoftwareSecurity-buildingsecurityIn》一书,聚焦于安全建模、风险分析、代码审查、测试与渗透测试,旨在将安全融入软件研发流程中。书中内容涵盖了安全开发流程(SDL)、关键安全实践和技术,是软件开发者提升安全意识和技能的宝贵资源。
推荐《Software Security - building security In》,关于安全建模、安全风险分析、安全代码审查、安全测试、渗透测试,是学习SDL的好材料,把安全建到软件研发过程中。
同步定位与地图构建(SLAM)技术为移动机器人或自主载具在未知空间中的导航提供了核心支撑。借助该技术,机器人能够在探索过程中实时构建环境地图并确定自身位置。典型的SLAM流程涵盖传感器数据采集、数据处理、状态估计及地图生成等环节,其核心挑战在于有效处理定位与环境建模中的各类不确定性。 Matlab作为工程计算与数据可视化领域广泛应用的数学软件,具备丰富的内置函数与专用工具箱,尤其适用于算法开发与仿真验证。在SLAM研究方面,Matlab可用于模拟传感器输出、实现定位建图算法,并进行系统性能评估。其仿真环境能显著降低实验成本,加速算法开发与验证周期。 本次“SLAM-基于Matlab的同步定位与建图仿真实践项目”通过Matlab平台完整再现了SLAM的关键流程,包括数据采集、滤波估计、特征提取、数据关联与地图更新等核心模块。该项目不仅呈现了SLAM技术的实际应用场景,更为机器人导航与自主移动领域的研究人员提供了系统的实践参考。 项目涉及的核心技术要点主要包括:传感器模型(如激光雷达与视觉传感器)的建立与应用、特征匹配与数据关联方法、滤波器设计(如扩展卡尔曼滤波与粒子滤波)、图优化框架(如GTSAM与Ceres Solver)以及路径规划与避障策略。通过项目实践,参与者可深入掌握SLAM算法的实现原理,并提升相关算法的设计与调试能力。 该项目同时注重理论向工程实践的转化,为机器人技术领域的学习者提供了宝贵的实操经验。Matlab仿真环境将复杂的技术问题可视化与可操作化,显著降低了学习门槛,提升了学习效率与质量。 实践过程中,学习者将直面SLAM技术在实际应用中遇到的典型问题,包括传感器误差补偿、动态环境下的建图定位挑战以及计算资源优化等。这些问题的解决对推动SLAM技术的产业化应用具有重要价值。 SLAM技术在工业自动化、服务机器人、自动驾驶及无人机等领域的应用前景广阔。掌握该项技术不仅有助于提升个人专业能力,也为相关行业的技术发展提供了重要支撑。随着技术进步与应用场景的持续拓展,SLAM技术的重要性将日益凸显。 本实践项目作为综合性学习资源,为机器人技术领域的专业人员提供了深入研习SLAM技术的实践平台。通过Matlab这一高效工具,参与者能够直观理解SLAM的实现过程,掌握关键算法,并将理论知识系统应用于实际工程问题的解决之中。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
root@80823b80abfa:/usr/bin# add-apt-repository ppa:ubuntu-toolchain-r/test -y Hit:1 http://rdsource.tp-link.com/ubuntu bionic InRelease Hit:2 http://rdsource.tp-link.com/ubuntu bionic-updates InRelease Hit:3 http://rdsource.tp-link.com/ubuntu bionic-backports InRelease Hit:4 http://rdsource.tp-link.com/ubuntu bionic-security InRelease Hit:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease Reading package lists... Done root@80823b80abfa:/usr/bin# apt update Hit:1 http://rdsource.tp-link.com/ubuntu bionic InRelease Hit:2 http://rdsource.tp-link.com/ubuntu bionic-updates InRelease Hit:3 http://rdsource.tp-link.com/ubuntu bionic-backports InRelease Hit:4 http://rdsource.tp-link.com/ubuntu bionic-security InRelease Hit:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease Reading package lists... Done Building dependency tree Reading state information... Done 72 packages can be upgraded. Run 'apt list --upgradable' to see them. root@80823b80abfa:/usr/bin# apt list --upgradable Listing... Done apt/bionic-updates 1.6.17 amd64 [upgradable from: 1.6.14] base-files/bionic-updates 10.1ubuntu2.12 amd64 [upgradable from: 10.1ubuntu2.11] binutils/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.9 amd64 [upgradable from: 2.30-21ubuntu1~18.04.8] binutils-common/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.9 amd64 [upgradable from: 2.30-21ubuntu1~18.04.8] binutils-x86-64-linux-gnu/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.9 amd64 [upgradable from: 2.30-21ubuntu1~18.04.8] ca-certificates/bionic-updates,bionic-security 20230311ubuntu0.18.04.1 all [upgradable from: 20211016ubuntu0.18.04.1] curl/bionic-updates,bionic-security 7.58.0-2ubuntu3.24 amd64 [upgradable from: 7.58.0-2ubuntu3.23] git/bionic-updates,bionic-security 1:2.17.1-1ubuntu0.18 amd64 [upgradable from: 1:2.17.1-1ubuntu0.17] git-man/bionic-updates,bionic-security 1:2.17.1-1ubuntu0.18 all [upgradable from: 1:2.17.1-1ubuntu0.17] krb5-locales/bionic-updates,bionic-security 1.16-2ubuntu0.4 all [upgradable from: 1.16-2ubuntu0.3] lib32atomic1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] lib32gcc1/bionic 1:13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 1:8.4.0-1ubuntu1~18.04] lib32gomp1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] lib32itm1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] lib32quadmath0/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] lib32stdc++6/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libapt-pkg5.0/bionic-updates 1.6.17 amd64 [upgradable from: 1.6.14] libatomic1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libbinutils/bionic-updates,bionic-security 2.30-21ubuntu1~18.04.9 amd64 [upgradable from: 2.30-21ubuntu1~18.04.8] libcc1-0/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libcurl3-gnutls/bionic-updates,bionic-security 7.58.0-2ubuntu3.24 amd64 [upgradable from: 7.58.0-2ubuntu3.23] libcurl4/bionic-updates,bionic-security 7.58.0-2ubuntu3.24 amd64 [upgradable from: 7.58.0-2ubuntu3.23] libgcc1/bionic 1:13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 1:8.4.0-1ubuntu1~18.04] libgomp1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libgssapi-krb5-2/bionic-updates,bionic-security 1.16-2ubuntu0.4 amd64 [upgradable from: 1.16-2ubuntu0.3] libitm1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libk5crypto3/bionic-updates,bionic-security 1.16-2ubuntu0.4 amd64 [upgradable from: 1.16-2ubuntu0.3] libkrb5-3/bionic-updates,bionic-security 1.16-2ubuntu0.4 amd64 [upgradable from: 1.16-2ubuntu0.3] libkrb5support0/bionic-updates,bionic-security 1.16-2ubuntu0.4 amd64 [upgradable from: 1.16-2ubuntu0.3] liblsan0/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libncurses5/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 amd64 [upgradable from: 6.1-1ubuntu1.18.04] libncurses5-dev/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 amd64 [upgradable from: 6.1-1ubuntu1.18.04] libncursesw5/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 amd64 [upgradable from: 6.1-1ubuntu1.18.04] libobjc4/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libperl5.26/bionic-updates,bionic-security 5.26.1-6ubuntu0.7 amd64 [upgradable from: 5.26.1-6ubuntu0.6] libpython2.7/bionic-updates,bionic-security 2.7.17-1~18.04ubuntu1.11 amd64 [upgradable from: 2.7.17-1~18.04ubuntu1.10] libpython2.7-minimal/bionic-updates,bionic-security 2.7.17-1~18.04ubuntu1.11 amd64 [upgradable from: 2.7.17-1~18.04ubuntu1.10] libpython2.7-stdlib/bionic-updates,bionic-security 2.7.17-1~18.04ubuntu1.11 amd64 [upgradable from: 2.7.17-1~18.04ubuntu1.10] libpython3.6/bionic-updates,bionic-security 3.6.9-1~18.04ubuntu1.12 amd64 [upgradable from: 3.6.9-1~18.04ubuntu1.10] libpython3.6-minimal/bionic-updates,bionic-security 3.6.9-1~18.04ubuntu1.12 amd64 [upgradable from: 3.6.9-1~18.04ubuntu1.10] libpython3.6-stdlib/bionic-updates,bionic-security 3.6.9-1~18.04ubuntu1.12 amd64 [upgradable from: 3.6.9-1~18.04ubuntu1.10] libquadmath0/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libssl-dev/bionic-updates,bionic-security 1.1.1-1ubuntu2.1~18.04.23 amd64 [upgradable from: 1.1.1-1ubuntu2.1~18.04.21] libssl1.0.0/bionic-updates,bionic-security 1.0.2n-1ubuntu5.13 amd64 [upgradable from: 1.0.2n-1ubuntu5.11] libssl1.1/bionic-updates,bionic-security 1.1.1-1ubuntu2.1~18.04.23 amd64 [upgradable from: 1.1.1-1ubuntu2.1~18.04.21] libstdc++6/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libtinfo-dev/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 amd64 [upgradable from: 6.1-1ubuntu1.18.04] libtinfo5/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 amd64 [upgradable from: 6.1-1ubuntu1.18.04] libtsan0/bionic 11.4.0-2ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libx32atomic1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libx32gcc1/bionic 1:13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 1:8.4.0-1ubuntu1~18.04] libx32gomp1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libx32itm1/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libx32quadmath0/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libx32stdc++6/bionic 13.1.0-8ubuntu1~18.04 amd64 [upgradable from: 8.4.0-1ubuntu1~18.04] libxml2/bionic-updates,bionic-security 2.9.4+dfsg1-6.1ubuntu1.9 amd64 [upgradable from: 2.9.4+dfsg1-6.1ubuntu1.8] linux-libc-dev/bionic-updates,bionic-security 4.15.0-213.224 amd64 [upgradable from: 4.15.0-206.217] ncurses-base/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 all [upgradable from: 6.1-1ubuntu1.18.04] ncurses-bin/bionic-updates,bionic-security 6.1-1ubuntu1.18.04.1 amd64 [upgradable from: 6.1-1ubuntu1.18.04] openssl/bionic-updates,bionic-security 1.1.1-1ubuntu2.1~18.04.23 amd64 [upgradable from: 1.1.1-1ubuntu2.1~18.04.21] perl/bionic-updates,bionic-security 5.26.1-6ubuntu0.7 amd64 [upgradable from: 5.26.1-6ubuntu0.6] perl-base/bionic-updates,bionic-security 5.26.1-6ubuntu0.7 amd64 [upgradable from: 5.26.1-6ubuntu0.6] perl-modules-5.26/bionic-updates,bionic-security 5.26.1-6ubuntu0.7 all [upgradable from: 5.26.1-6ubuntu0.6] python2.7/bionic-updates,bionic-security 2.7.17-1~18.04ubuntu1.11 amd64 [upgradable from: 2.7.17-1~18.04ubuntu1.10] python2.7-minimal/bionic-updates,bionic-security 2.7.17-1~18.04ubuntu1.11 amd64 [upgradable from: 2.7.17-1~18.04ubuntu1.10] python3.6/bionic-updates,bionic-security 3.6.9-1~18.04ubuntu1.12 amd64 [upgradable from: 3.6.9-1~18.04ubuntu1.10] python3.6-minimal/bionic-updates,bionic-security 3.6.9-1~18.04ubuntu1.12 amd64 [upgradable from: 3.6.9-1~18.04ubuntu1.10] tzdata/bionic-updates,bionic-security 2023c-0ubuntu0.18.04 all [upgradable from: 2022g-0ubuntu0.18.04] vim/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.13 amd64 [upgradable from: 2:8.0.1453-1ubuntu1.10] vim-common/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.13 all [upgradable from: 2:8.0.1453-1ubuntu1.10] vim-runtime/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.13 all [upgradable from: 2:8.0.1453-1ubuntu1.10] xxd/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.13 amd64 [upgradable from: 2:8.0.1453-1ubuntu1.10]
10-21
你已经成功添加了 PPA 并运行了 `apt update`,输出显示: ``` Hit:5 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease ``` 这意味着 APT 成功获取了 **ubuntu-toolchain-r/test** 这个 PPA 的包索引。 同时 `apt list --upgradable` 显示大量可升级的包(如 `libstdc++6`, `gcc` 相关库等),说明你的系统中已经有新版本的软件包信息,但尚未安装。 --- ## ✅ 当前状态分析 | 项目 | 状态 | |------|------| | ✅ PPA 添加 | 成功 (`add-apt-repository`) | | ✅ 包列表更新 | 成功 (`apt update`) | | ⚠️ GCC-9 是否已安装? | ❌ 尚未安装(只准备好了元数据) | | 🔁 可升级包数量 | 72 个(包括很多底层编译器组件) | > 📌 注意:你现在只是“准备好”安装 GCC-9,但还没有真正执行安装! --- ## ✅ 第一步:安装 `gcc-9` 和 `g++-9` ```bash sudo apt install -y gcc-9 g++-9 ``` 这会安装: - `gcc-9`: C 编译器 - `g++-9`: C++ 编译器(包含 `g++` 和 `libstdc++-9-dev`) 如果提示依赖冲突或空间不足,请继续看下方“常见问题”。 --- ## ✅ 第二步:验证是否安装成功 ```bash gcc-9 --version g++-9 --version ``` 预期输出类似: ``` gcc-9 (Ubuntu 9.4.0-1ubuntu1~18.04) 9.4.0 Copyright (C) 2019 Free Software Foundation, Inc. ... ``` --- ## ✅ 第三步:设置为默认编译器(使用 `update-alternatives`) 你可以让 `gcc` 命令默认指向 `gcc-9`: ```bash sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 30 \ --slave /usr/bin/g++ g++ /usr/bin/g++-9 \ --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9 \ --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-9 \ --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9 ``` 📌 参数解释: - `30` 是优先级,数字越大越优先 - `--slave` 表示这些命令与主命令(`gcc`)绑定一起切换 --- ## ✅ 第四步:验证默认版本 ```bash gcc --version g++ --version ``` 现在应该输出 `gcc-9` 的版本号。 --- ## 🔧 常见问题及解决方案 ### ❗ 问题 1:`E: Unable to locate package gcc-9` 虽然你已经 `apt update`,但如果仍报错,请检查 PPA 是否正确启用: ```bash ls /etc/apt/sources.list.d/ubuntu-toolchain-r-test-*.list cat /etc/apt/sources.list.d/ubuntu-toolchain-r-test-*.list ``` 应看到内容包含: ``` deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic main ``` 如果没有 → 重新添加: ```bash sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt update ``` --- ### ❗ 问题 2:Hash Sum Mismatch(如之前遇到) 如果你在安装过程中再次出现 `Hash Sum mismatch`,请强制使用 HTTPS 并清理缓存: ```bash # 清理旧缓存 sudo rm -rf /var/lib/apt/lists/* sudo apt clean # 强制将 PPA 源改为 HTTPS(防中间缓存污染) sudo sed -i 's|http://ppa.launchpad.net|https://ppa.launchpad.net|g' /etc/apt/sources.list.d/ubuntu-toolchain-r-test-*.list # 更新 sudo apt update # 安装 sudo apt install -y gcc-9 g++-9 --fix-missing ``` --- ### ❗ 问题 3:磁盘空间不足(Docker 容器常见) 你在 Docker 中运行(`root@80823b80abfa` 是容器 ID),可能空间有限。 查看空间: ```bash df -h ``` 如果 `/` 接近满载,建议: - 扩容镜像 - 或先清理无用文件: ```bash sudo apt autoremove -y sudo apt clean ``` --- ### ❗ 问题 4:为什么这么多包可以升级? 你看到 `72 packages can be upgraded`,是因为: - 系统启用了 `bionic-updates`, `bionic-security` - PPA 提供了新版 `libstdc++6`, `binutils`, `libgcc1` 等底层库 - 这些是正常现象,尤其是开发环境推荐升级 ✅ 推荐升级所有安全更新: ```bash sudo apt upgrade -y ``` 或者只升级关键组件: ```bash sudo apt install libstdc++6 libgcc1 binutils gcc-9 g++-9 --only-upgrade ``` --- ## ✅ 最终完整脚本(一键安装 GCC-9) ```bash # 1. 添加 PPA sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y # 2. 强制使用 HTTPS(重要!防 hash 错误) sudo sed -i 's|http://ppa.launchpad.net|https://ppa.launchpad.net|g' /etc/apt/sources.list.d/ubuntu-toolchain-r-test-*.list # 3. 更新包列表 sudo apt update # 4. 安装 GCC-9 和 G++-9 sudo apt install -y gcc-9 g++-9 # 5. 设置默认编译器 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 30 \ --slave /usr/bin/g++ g++ /usr/bin/g++-9 \ --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9 \ --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-9 \ --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9 # 6. 验证 gcc --version g++ --version ``` --- ## ✅ 补充建议(适用于 CI/Docker) 如果你是在 CI 或 Dockerfile 中构建,建议加上: ```Dockerfile ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ sed -i 's|http://ppa.launchpad.net|https://ppa.launchpad.net|g' /etc/apt/sources.list.d/ubuntu-toolchain-r-test-*.list && \ apt-get update && \ apt-get install -y gcc-9 g++-9 && \ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 30 --slave /usr/bin/g++ g++ /usr/bin/g++-9 && \ rm -rf /var/lib/apt/lists/* ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值