docker摆设openwrt体系编译情况

打印 上一主题 下一主题

主题 1767|帖子 1767|积分 5301

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
背景:首次接触docker。
1、拉取镜像。
2、通过初始镜像开启一个容器,并将容器重新设置一个tag,检察容器,通过exec开启终端,注:docker名称必须是小写的,检察docker容器列表。
docker run -it 861b7388600f91f3a0b82a496821eeb88733c8138b7228d3267161507af4aa89 /bin/bash
docker rename interesting_moser ubuntuforcompile
docker ps -a
docker exec -it ubuntuforcompile /bin/bash
3、禁用root远程登录ssh,并允许ubuntu账号登录,并锁定root账户。
sed -i 's/^#?PasswordAuthentication ./PasswordAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^#?PermitRootLogin .
/PermitRootLogin no/' /etc/ssh/sshd_config
echo "AllowUsers ubuntu" >> /etc/ssh/sshd_config
sudo passwd -l root (反操纵sudo passwd -u root)
4、将容器做成一个镜像,再创建ssh容器。
docker commit 861b7388600f91f3a0b82a496821eeb88733c8138b7228d3267161507af4aa89 ubuntuforcompile
docker run -d -p 2222:22 ubuntuforcompile /usr/sbin/sshd -D
docker rename XX  ubuntuforcompile
5、安装编译情况。
点击检察代码
  1. #!/bin/bash
  2. set -e
  3. echo "?? 更新 APT 软件源..."
  4. sudo apt update
  5. echo "?? 安装 OpenWrt 编译所需依赖包:"
  6. # 编译工具链相关
  7. sudo apt install -y \
  8.   build-essential \        # 编译 C/C++ 必备:gcc、make、libc 等
  9.   g++ \                    # GNU C++ 编译器
  10.   gcc \                    # GNU C 编译器
  11.   make \                   # 编译自动化工具
  12.   libtool \                # 用于构建共享库
  13. # 预处理器/生成器
  14.   flex \                   # 词法分析工具
  15.   bison \                  # 语法分析工具
  16.   swig \                   # 生成语言接口封装工具
  17. # 脚本 & 工具链支持
  18.   gawk \                   # GNU awk,makefile 中常用
  19.   gettext \                # 国际化支持
  20.   unzip \                  # 解压 zip 包
  21.   zlib1g-dev \             # 压缩库开发文件
  22.   file \                   # 检测文件类型
  23.   wget \                   # 网络下载工具
  24.   curl \                   # 网络请求工具
  25.   rsync \                  # 高效文件同步工具
  26. # OpenWrt 编译常用工具
  27.   subversion \             # SVN,用于拉代码
  28.   git \                    # Git 同上
  29.   ccache \                 # 编译缓存加速
  30.   libelf-dev \             # ELF 文件解析支持
  31.   zstd \                   # 新一代压缩算法支持
  32. # 菜单配置支持(如 menuconfig)
  33.   libncurses-dev \         # 字符终端 UI 支持
  34. # 安全/加密支持
  35.   libssl-dev \             # OpenSSL 开发头文件
  36. # Python 支持
  37.   python3 \                # Python3 主程序
  38.   python3-pip \            # Python 包管理器
  39. # Java 支持(某些模块会用)
  40.   default-jre \            # Java 运行环境
  41.   default-jdk \            # Java 开发工具
  42.   ecj \                    # Eclipse 编译器
  43.   fastjar \                # 创建 Java jar 文件
  44.   java-propose-classpath \# Java 类路径提示工具
  45.   ant \                    # Java 构建工具
  46. # XML/Perl 解析(如 feeds/patches 中会用)
  47.   autoconf \               # 自动配置脚本生成工具
  48.   automake \               # Makefile 辅助生成
  49.   libxml-parser-perl \     # Perl 的 XML 解析器
  50.   xsltproc                 # XML 处理工具(XSLT 转换)
  51. echo ""
  52. echo "?? 检测 Python 版本..."
  53. PYVER=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
  54. DISTUTILS_PKG="python${PYVER}-distutils"
  55. echo "?? 正在安装 ${DISTUTILS_PKG} ..."
  56. if ! sudo apt install -y "$DISTUTILS_PKG"; then
  57.   echo "?? 未找到 ${DISTUTILS_PKG},尝试建立软链接兼容"
  58.   sudo ln -s "/usr/lib/python${PYVER}/distutils" "/usr/lib/python3/distutils"
  59. fi
  60. echo ""
  61. echo "? 环境准备完成,可以开始编译 OpenWrt!"
复制代码
6、克隆openwrt,并切换到openwrt-24.10,克隆自界说的插件
git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git checkout openwrt-24.10
echo "src-git myfeed https://github.com/XXX/TestOpenwrt.git" >> feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a
7.make memuconfig
主要选中了这些
LUCI中:
luci-app-ddns
luci-app-openclash(需要dnsmasq-full,需要把dnsmasq取消)
luci-app-openvpn
luci-app-samba4
luci-app-udpxy
luci-app-vlmcsd
VPN中:
openvpn-openssl
8、编译make
nproc 检察线程个数
make -j$(nproc)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

十念

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表