Ubuntu Server 安装 Subversion实现精细的目录访问权限控制 安装Subversion和Apache sudo apt-get install subversion li

本文介绍如何在Ubuntu Server上安装Subversion,并通过Apache实现带有精细目录访问权限控制的代码仓库。包括创建用户组、设置权限、配置Apache、创建密码文件等步骤。

Ubuntu Server 安装 Subversion实现精细的目录访问权限控制

 

  1. 安装Subversion和Apache

    sudo apt-get install subversion libapache2-svn

  2. 创建组subversion,并配置权限将自己和www-data(Apache用户)加入组成员

    sudo addgroup subversion

     sudo usermod -G subversion -a www-data

  3. 创建代码仓库, 这里我的项目是arlicle

    sudo mkdir /home/svn

     cd /home/svn 

    sudo mkdir arlicle

     sudo chown -R root:subversion arlicle

     sudo svnadmin create /home/svn/arlicle

  4. 对所有使用成员设置权限

    sudo chmod -R g+rws arlicle

     sudo chown -R root:subversion arlicle

  5. 设置用户访问权限 
    修改/etc/apache2/mods-available/dav_svn.conf

    DAV svn 

    SVNPath /home/svn/arlicle

     AuthType Basic 

    AuthName "arlicle subversion repository" 

    AuthUserFile /etc/subversion/passwd Require valid-user

  6. 重启Apache

    sudo /etc/init.d/apach2 restart

  7. 创建密码文件和访问用户并设置密码

    创建密码文件 和用户for 首次创建

    sudo htpasswd -c /etc/subversion/passwd edison

    添加一个用户

    sudo htpasswd -c /etc/subversion/passwd edison2

  8. 这样就可以访问代码仓库了

    svn co http://www.arlicle.com/svn/arlicle arlicle --username edison

  9. 如果要设置更详细的访问权限, 
    修改/etc/apache2/mods-available/dav_svn.conf

    DAV svn 

    SVNPath /home/svn/arlicle

     AuthType Basic 

    AuthName "arlicle subversion repository" 

    AuthUserFile /etc/subversion/passwd 

    AuthzSVNAccessFile /etc/subversion/accessfile

     Require valid-user

然后编辑accessfile文件,控制每个目录的访问和读写权限

[arlicle:/]
user1 = r
user2 = r
user3 = r
[arlicle:/folder1]
user1 = rw
[arlicle:/folder2]
user2 = rw
  1. 也可以创建多个代码仓库

修改/etc/apache2/mods-available/dav_svn.conf

<Location /svn/arlicle1>
DAV svn
SVNPath /home/svn/arlicle1
AuthType Basic
AuthName "arlicle subversion repository"
AuthUserFile /etc/subversion/passwd
AuthzSVNAccessFile /etc/subversion/accessfile
Require valid-user
</Location>

<Location /svn/arlicle2>
DAV svn
SVNPath /home/svn/arlicle2
AuthType Basic
AuthName "arlicle subversion repository"
AuthUserFile /etc/subversion/passwd
AuthzSVNAccessFile /etc/subversion/accessfile
Require valid-user
</Location>

你列出的命令是用于在基于 Debian/UbuntuLinux 系统上安装编译嵌入式系统固件(如 OpenWrt、Broadcom SDK 或其他路由器固件)所需的依赖包。这些命令大部分是正确的,但存在一些 **重复、拼写错误格式问题**。下面我将: 1. ✅ **整理并修正你的命令** 2. 📌 **解释每个依赖的作用** 3. 💡 **提供一个完整的、可安全运行的安装脚本** 4. ⚠️ **指出常见问题与建议** --- ### ✅ 修正后的完整依赖安装命令 ```bash sudo apt-get update sudo apt-get install -y \ gperf \ automake \ flex \ bison \ libncurses5-dev \ liblzma-dev \ lzma \ binutils-dev \ libtool \ liblzo2-dev \ uuid-dev \ gawk \ libssl-dev \ subversion \ realpath \ libelf-dev \ libz-dev \ wget \ unzip \ python3 \ git \ make \ gcc ``` > ✅ 注意:已修复 `liblzo2dev` → `liblzo2-dev`,合并重复项,并添加了常用补充工具。 --- ### 📌 各依赖包的作用说明 | 包名 | 用途 | |------|------| | `gperf` | GNU Perfect Hash Generator,用于生成快速查找表(常用于词法分析) | | `automake` / `autoconf` / `libtool` | 自动生成 Makefile 管理库编译的工具链 | | `flex` | 快速词法分析器生成器(`.lex` 文件处理) | | `bison` | 语法分析器生成器(替代 yacc,处理 `.y` 文件) | | `libncurses5-dev` | 提供终端 UI 支持(如 `menuconfig` 图形配置界面) | | `liblzma-dev` / `lzma` | XZ/LZMA 压缩支持(固件镜像常用) | | `binutils-dev` | 提供链接器、汇编器等底层开发头文件 | | `liblzo2-dev` | LZO 高速压缩库开发文件(某些固件使用) | | `uuid-dev` | 生成唯一标识符(UUID),部分构建系统需要 | | `gawk` | GNU AWK,比 `mawk` 更强大,适合复杂文本处理 | | `libssl-dev` | OpenSSL 开发库,用于 HTTPS、签名、加密等功能 | | `subversion` | SVN 版本控制工具(老项目仍用 SVN) | | `realpath` | 获取真实路径的命令(某些 Makefile 使用) | | `libelf-dev` | ELF 文件操作支持(调试、符号提取) | | `libz-dev` | zlib 压缩库(`.gz` 支持,非常关键) | | `wget` / `unzip` / `git` / `python3` | 常用工具,下载、解压、脚本执行、版本管理 | --- ### ⚠️ 常见问题与建议 #### ❌ 拼写错误 - 错误写法:`liblzo2dev` ❌ 正确应为:`liblzo2-dev` ✅ #### 🔁 重复安装 你多次运行: ```bash sudo apt-get install uuid-dev sudo apt-get install libncurses5-dev ``` → 可以合并成一次安装,避免重复执行。 #### 💡 推荐额外安装(提高兼容性) ```bash sudo apt-get install -y \ libc6-dev-i386 \ # 支持 32-bit 编译 gcc-multilib \ # 多架构编译支持 quilt \ # 补丁管理工具 ccache \ # 编译缓存加速 device-tree-compiler \ # DTS 编译器(.dts → .dtb) bc # 数学计算工具,make menuconfig 可能需要 ``` #### 🐧 适用于哪种系统? 上述命令适用于: - Ubuntu 18.04 / 20.04 / 22.04 - Debian 10+ - Kali Linux - WSL2(Windows Subsystem for Linux) --- ### ✅ 最佳实践:创建一个 setup-build-env.sh 脚本 ```bash #!/bin/bash echo "Updating package list..." sudo apt-get update echo "Installing build dependencies for embedded firmware (OpenWrt, BCM, etc.)" sudo apt-get install -y \ build-essential \ gperf \ automake \ flex \ bison \ libncurses5-dev \ liblzma-dev \ liblzo2-dev \ libssl-dev \ libelf-dev \ libz-dev \ binutils-dev \ libtool \ uuid-dev \ gawk \ subversion \ git \ wget \ unzip \ python3 \ make \ gcc \ bc \ device-tree-compiler \ ccache \ realpath echo "Done! You're ready to compile firmware." ``` 保存为 `setup-build-env.sh`,然后运行: ```bash chmod +x setup-build-env.sh ./setup-build-env.sh ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值