找回密码
 立即注册
[string global_login_extra]

QQ登录

只需一步,快速开始

扫一扫,访问移动社区

查看: 6383|回复: 2

[分享] 在 QNAP TS-209 Pro 上跑 Subversion Server

[复制链接]
  • TA的每日心情
    无聊
    2023-10-31 16:26
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    5049

    丝瓜

    596

    回帖

    18

    精华

    普通用户

    发表于 2009-3-18 17:10:31 | 显示全部楼层 |阅读模式

    注册后可查看完整内容!

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

    ×
    在 QNAP TS-209 Pro 上跑 Subversion Server
    一开始购买 QNAP TS-209 Pro NAS 伺服器时,就打算要安装 Subversion Server,但是当时受限于以为一定要安装 Apache Web Server 2.X 以上的版本,而 QNAP 内嵌的 ARM-based Linux 系统,预设是安装 Apache 1.X。 后来才恍然大悟,并不需要透过 Apache 来做连接传输与权限管控,利用 Subversion 预设跑的 svnserver daemon 当然也可以作到,而且使用 svn 的传输协定,效能还好上很多呢。
    安装 Subversion Server 有两大项目,一为先为 QNAP 安装 iPKG;另一个就是再利用 ipkg 安装 Subversion Server。 iPKG 是一种轻量 (lightweight)级的套件管理系统,其作用如同 Fedora 的 RPM 或如 Debian 的 APT。而 iPKG 多是应用在容量有限的嵌入式 (Embedded) Linux 系统内。 当然,执行这两件项目前,要先利用如 PieTTY 登入 QNAP NAS 的 Console 内。
    iPKG 的安装方法直接参照此篇:[Optware/Ipkg]: Install any Linux app on TS-109/209/PRO。
    先下载 iPKG 的安装压缩档,储存该档桉于 /share/Public/ 目录下,并解压缩它。 只要依照该安装步骤,执行自动安装程序,过程非常顺利,没有任何问题。这裡所提供的压缩档是最新版的,一切均会自动执行设定与安装,包括环境变数等,都不需要再自行新增修改。安装完毕后,重新开机再利用 PieTTY 登入后即可利用 iPKG 执行安装 Subversion。
    Subversion 的安装步骤是参考该篇: Subversion Server on QNAP-209 Pro ,不过我有调整了一些步骤,参考如下:
    [More:]
    1. 安装 Subversion binary:
    ipkg install svn
    2. 这样就安装完毕了,相当简单! 不过,为了让 QNAP NAS 重开机后可以自动执行 svnserver,所以需执行下列程序: (请记得要指定 Port,这裡我是採预设的 3690。)
    mount /dev/mtdblock5 -t ext2 /tmp/config
    cd /tmp/config
    echo "/opt/bin/svnserve -d --listen-port=3690" >> autorun.sh
    umount mount /dev/mtdblock5
    3. 重开机后登入,执行 svnadmin --version 即可确认安装是否成功。
    4. 再来就是新增 Repository 与存取权限设定等程序。关于内建的权限管控设定,可以参考 subversion 手册:Built-in authentication and authorization。
    5. 指定 Repository 的根目录所在位置。我是新增了一个目录 /svn (最好是用 QNAP 的网页版的档桉管理新增,并指定存取权限),它会位于 /share/svn 目录下。
    6. 创建 Repository。我的策略是採多个 Repository 管理个别的专桉,但是只用一组帐户与存取规则统筹管控。
    svnadmin create /share/svn/repos1
    svnadmin create /share/svn/repos2
    7. 上述提过,我只利用一个帐户密码档 (passwd),以及把存取规则是定义在一个独立的授权 (authorization)档 (authz)内,这称之为 Path-Based Authorization。 我是把这两个档桉集中放在自行定义的 /share/svn/conf 目录内。 帐号密码并不需要事先新增在 Linux 系统内,只要定义在 passwd 档桉内即可;不过,有个缺点是密码是採明码的设定,似乎无法如同利用 Apache 的权限设定,可以利用工具设定编码后的密码? 还有,请注意,在 authz 的 repository 路径要设为绝对路径,而不是相当路径,例如 /share/svn/repos1,为了这个问题,我在权限设定设定这部分了好久才找到这个原因。
    passwd:
    -------------------------------------
    [users]
    admin = adminpassword
    christine = christinepassword
    funkid = funkidpasswod
    -------------------------------------
    authz:
    -------------------------------------
    [groups]
    administrators = admin
    developers = christine, funkid
    [/]
    * =
    @administrators = rw
    [/share/svn/repos1:/]
    @developers = rw
    [/share/svn/repos2:/]
    christine = rw
    -------------------------------------
    8. 至每一个 repository 的子目录 /conf (如 /share/svn/repos1),编辑 svnserve.conf 档桉,内容如下:
    [general]
    password-db = /share/svn/conf/passwd
    #每一个 repository 的 realm 均指定为一个共同的字串名称,即代表共用同一个 namespace。
    realm = global_repository
    # Specific access rules for specific locations
    authz-db = /share/svn/conf/authz
    大功告成! 在 WindowsXP Client 端利用如 TortoiseSVN 工具,连结测试,并输入所使用的帐号密码等,即可知道设定是否正确。 一般若可以连结,但无法存取,问题多半出在授权档 (authz)的设定上。 另请注意,repository 的路径为:
    svn://your_ip_address_or_domain:3690/share/svn/repos1/
    *** 备注 (2008/06/08) ***
    我放弃在 SvnServer 使用 "Path-Based Authorization" 的方式了,验证一直无法通过,找不出设定的问题。 目前採用折衷的作法是将 passwd 档桉统一放置在 /share/svn/conf 目录下;但是每一个 repository 则个别管理它们自己的授权 authz 档桉。
  • TA的每日心情
    慵懒
    2014-5-10 00:15
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    630

    丝瓜

    229

    回帖

    2

    精华

    普通用户

    发表于 2009-3-19 20:50:06 | 显示全部楼层
    用不到这个,不过还是支持下楼主!顺便睡一下沙发
    回复

    使用道具 举报

    该用户从未签到

    107

    丝瓜

    46

    回帖

    0

    精华

    普通用户

    Medal No.5Medal No.6

    发表于 2009-3-20 19:38:44 | 显示全部楼层
    IPKG现在有QKPG安装包了,我装了后不会用IPKG装LINUX应用,比如AMULE,如何进入控制台模式?
    回复

    使用道具 举报

    懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    [string global_footer]

    QQ|Archiver|手机版|小黑屋|第一纳斯网 ( 粤ICP备19046372号 )[string global_footerlink]

    GMT+8, 2024-11-22 19:16

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表