在树莓派 raspberry pi 上搭建svn serve (svn 服务器)并存放在U盘中
2017-09-03 22:45
447 查看
keyword: 树莓派; RaspberryPi; U盘; SVN serve; SVN 服务器; linux
树莓派 – 就是个装了linux系统的电脑,所以其实这就是一篇披着树莓派马甲的– linux搭建svn serve(svn服务器) 的blog
这是本人在 实践时,记录在 onenote 的 笔记。
简单修改格式后贴上来,有写得不好的地方,请多多指教。
– 在 Raspberry Pi + U盘上可以使用:
等一等!!! 因为U盘格式问题,所以后面步骤会有问题,所以在执行 上述 mkdir 命令之前,先将U盘整成linux上方便使用的系统格式!
如果已经mkdir了,忽略它,“将U盘整成linux上方便使用的系统格式”之后,再重新做上面的 mkdir 工作!
-> 2.1. 了解U盘
-> 2.2. 修改U盘
warning !!!!!!!!! 先将U盘 卸载! (从LINUX系统中卸载,不是拔下U盘!)
假如你上面了解到 U盘插入后,是 /dev/sda, 且 只有 /dev/sda1 这一个分区。
输入:
再输入:
最后:
-> 2.3 格式化U盘
-> 2.4 最后挂载U盘!
因为如果使用U盘来保存项目的内容的话,就把U盘当作它的一部分吧,挂载的路径选好就行。(我是挂载在
– 挂载U盘在 “根目录” 下可能会有问题!
使用
树莓派实例:
其中, -B 要求以 K,M,G 等单位显示磁盘容量, G 即单位为GB, -BG 就是要求 df 命令以 GByte 显示磁盘容量使用情况。
-> 2.5. 成功挂载好了U盘? 这个时候U盘已经格式化过了,所以上面的
“ 创建一个目录供给 SVN 服务器使用,做版本控制”
这个步骤要再来一遍哦!
比如我把 U盘挂载在了
所以我实际上操作U盘的目录是:
那么我创建一个SVN 服务器工作目录的命令:
– 在 raspberry pi 可以这样:
实例示范:
创建完成一个 project 之后,使用 tree 命令 看看目录结构:
看到的内容大致如下:
my_project
|— README.txt
|— conf
| |– authz
| |– hooks-env.tmpl
| |– passwd
| `– svnserve.conf
|— db
| |– current
…省略…
| |– uuid
| `– write-lock
|— format
|— hooks
| |– post-commit.tmpl
…省略…
| |
| `– start-commit.tmpl
`– locks
|– db-logs.lock
`– db.lock
10 directories, 28 files
其中,大多数文件我们都不必关心,也不必去查看。只需要最后修改上面加粗斜体的三个文件即可。
————- 现在,对于一个项目— 名叫“my_project” , ———–
被 SVN 控制在 …/…/svn/repo/my_project/ 这个目录下!
– 这是 SVN 控制的版本,里面以后会包含各种历史版本。
这个目录就跟放在网上(github),云端上的目录一样。
Developer 开发时,不直接控制这个目录,而是“checkout”这个project到自己本地的某个目录。然后修改任何内容,把修改的内容“commit”到上文说的这个SVN控制的目录中。
————————————————————————-
大可以跳过这一段关于 文件/文件夹 权限的介绍,直接跳过第4节到下文“–> 5. 以上,实际上还是停留在整个系统层面对 组 和 用户 的分配。” 这一节,去配置 svn(subversion)下我们刚刚创建的 my_project 项目;
如果配置完成后,然后启动 svn server 出现了错误,这个时候再去分析 svn 这个软件对与 创建的项目的 文件/文件夹 的操作权限也不迟。)
现在,创建完了一个受控制项目。然后就应该做一点点配置,使得developer能够 checkout 这个项目,同时可以 commit 内容,
—> 想到,一个项目会有很多人功能开发,比如每个人负责开发一个小功能。说明说这个项目需要被多个人控制。这多个人我们就把它们归于一个 group !
↑ 添加了一个叫 developer_myproject_group 的 group
———————— 目录的权限: ———————————
“/media/pi/[UdiskName]/svn/repo/[my_project]/” 这个目录也是有权限的区分的。
权限类型:
r==read, w==write, x==execute;
比如: drwxrwxr-x <– 表示 :目录 + 读写执 + 读写执 + 读-不可以写-执
-rwxr-xr– <– 可执行文件 + 读写执 + 读-不可以写-执 + 只读
drwxrwx— <– 目录 + 读写执 + 读写执 + 没有任何权限
–> 关于“目录” 为什么需要“可执行”权限,查查就知道了。==> 和这两个命令有关系:“
———————————————————————-
– 所以创建完了可以开发项目的小组后,给予这个小组访问 目录 的权限
# chgrp -R developer_myproject_group …/…/svn/repo/[my_project]
– 这行命令,将该目录的所属,归于 developer_*** 这个 group
– 这行命令, 修改了 目录 的执行权限。
– 可以使用命令:
—————- 组 与 用户: ——————————–
看文件 “/etc/group” 可以看到 组 下面有 那些用户。
developer_myproject_group:x:1002:developer1_kankan,developer2_jane,root
手动修改这个文件,就可以给 group 添加 用户。也可以通过命令的方式:
–> 这样就往 group 中添加了用户。
—————————————————————-
– 所以,添加一下用户到 开发这个项目的小组中去:
参考:Ubuntu14.04快速搭建SVN服务器及日常使用
↑ 这篇重点就是看上述 三个 vim 修改相关的内容!
该blog三个文件的修改部分(截图)选取 ↓
–更新:漏了启动svn serve 的(内容)代码! —
–查看 svn serve 是否成功启动:
如果看到输出,svnserve 正在监听 3690 端口,说明开启成功。
开启服务的svn 路径不是那么好说明白,
简单地说就是,比如你 — 这样创建了一个托管项目:
那么,你打开svn serve 使用的命令就应该是:
– 第一次上传已经存在的一些项目文件:
import
参考:svn import 命令
– 把受控的整下来:
checkout
– 如果是调整项目的文件位置,或者目录结构,等等,先用以下命令:
– 做了一些修改:
commit
一些参考:svn 的常见操作 import
参考(reference):
This wiki document explains how to setup Subversion alias SVN on Ubuntu. The intended audience is experienced Linux users and system administrators.
-> 如果SVN 遇到什么问题,参考这一篇↓,非常重要!!!
This wiki document explains how to setup Subversion alias SVN on Ubuntu. The intended audience is experienced Linux users and system administrators.
树莓派 – 就是个装了linux系统的电脑,所以其实这就是一篇披着树莓派马甲的– linux搭建svn serve(svn服务器) 的blog
这是本人在 实践时,记录在 onenote 的 笔记。
简单修改格式后贴上来,有写得不好的地方,请多多指教。
-> 1. 安装 SVN 服务器
$ sudo apt-get install subversion-> 2. 创建一个目录供给 SVN 服务器使用,做版本控制,
– 在Ubuntu 上使用的是:# mkdir -p /svn/repository
– 在 Raspberry Pi + U盘上可以使用:
# mkdir -p /media/pi/[UdiskName]/svn/repo(sitory)
等一等!!! 因为U盘格式问题,所以后面步骤会有问题,所以在执行 上述 mkdir 命令之前,先将U盘整成linux上方便使用的系统格式!
如果已经mkdir了,忽略它,“将U盘整成linux上方便使用的系统格式”之后,再重新做上面的 mkdir 工作!
-> 2.1. 了解U盘
# fdisk -l命令相关。
-> 2.2. 修改U盘
warning !!!!!!!!! 先将U盘 卸载! (从LINUX系统中卸载,不是拔下U盘!)
假如你上面了解到 U盘插入后,是 /dev/sda, 且 只有 /dev/sda1 这一个分区。
# fdisk /dev/sdaor
$ sudo fdisk /dev/sda
输入:
t
再输入:
83
最后:
wq #<- 保存修改
-> 2.3 格式化U盘
# mkfs.ext4 /dev/sda1or
$ sudo mkfs.ext4 /dev/sda1
-> 2.4 最后挂载U盘!
因为如果使用U盘来保存项目的内容的话,就把U盘当作它的一部分吧,挂载的路径选好就行。(我是挂载在
/mnt/目录下的,你完全可以按照raspberry pi 默认的挂载方式,挂载在
/media/pi/这个目录下。)
– 挂载U盘在 “根目录” 下可能会有问题!
使用
df命令查看系统的挂载情况(和空间使用情况)
<user>@<hostname>:<yourpath>\ $ df -BG
树莓派实例:
pi@ raspberrypi:~ $ df -BG
其中, -B 要求以 K,M,G 等单位显示磁盘容量, G 即单位为GB, -BG 就是要求 df 命令以 GByte 显示磁盘容量使用情况。
-> 2.5. 成功挂载好了U盘? 这个时候U盘已经格式化过了,所以上面的
“ 创建一个目录供给 SVN 服务器使用,做版本控制”
这个步骤要再来一遍哦!
$ sudo mkdir -p /[你挂载U盘后的U盘根路径]/svn/repo
比如我把 U盘挂载在了
/mnt/这个目录下,U盘取名 SanDisk 为例
所以我实际上操作U盘的目录是:
/mnt/SanDisk/
那么我创建一个SVN 服务器工作目录的命令:
$ sudo mkdir -p /mnt/SanDisk/svn/repo(sitory)
-> 3. 创建一个 project 版本控制:
– 在 Ubuntu 上实践过的:# svnadmin create /svn/repository/[my_project]
– 在 raspberry pi 可以这样:
# svnadmin create /[你挂载U盘后的U盘根路径]/svn/repo(sitory)/[myproject]
实例示范:
root@ raspberrypi:~# cd /mnt/SanDisk/svn/repo/
root@ raspberrypi:/mnt/SanDisk/svn/repo/# svnadmin create my_project
创建完成一个 project 之后,使用 tree 命令 看看目录结构:
root@ /<yourPath>/svn/repo/ # tree my_project
看到的内容大致如下:
my_project
|— README.txt
|— conf
| |– authz
| |– hooks-env.tmpl
| |– passwd
| `– svnserve.conf
|— db
| |– current
…省略…
| |– uuid
| `– write-lock
|— format
|— hooks
| |– post-commit.tmpl
…省略…
| |
| `– start-commit.tmpl
`– locks
|– db-logs.lock
`– db.lock
10 directories, 28 files
其中,大多数文件我们都不必关心,也不必去查看。只需要最后修改上面加粗斜体的三个文件即可。
————- 现在,对于一个项目— 名叫“my_project” , ———–
被 SVN 控制在 …/…/svn/repo/my_project/ 这个目录下!
– 这是 SVN 控制的版本,里面以后会包含各种历史版本。
这个目录就跟放在网上(github),云端上的目录一样。
Developer 开发时,不直接控制这个目录,而是“checkout”这个project到自己本地的某个目录。然后修改任何内容,把修改的内容“commit”到上文说的这个SVN控制的目录中。
————————————————————————-
-> 4. linux 文件、文件夹操作权限 配置
(注:文件/文件夹 权限相关的内容,属于 linux 系统层面的东西,本文解释地可能不清楚;大可以跳过这一段关于 文件/文件夹 权限的介绍,直接跳过第4节到下文“–> 5. 以上,实际上还是停留在整个系统层面对 组 和 用户 的分配。” 这一节,去配置 svn(subversion)下我们刚刚创建的 my_project 项目;
如果配置完成后,然后启动 svn server 出现了错误,这个时候再去分析 svn 这个软件对与 创建的项目的 文件/文件夹 的操作权限也不迟。)
现在,创建完了一个受控制项目。然后就应该做一点点配置,使得developer能够 checkout 这个项目,同时可以 commit 内容,
—> 想到,一个项目会有很多人功能开发,比如每个人负责开发一个小功能。说明说这个项目需要被多个人控制。这多个人我们就把它们归于一个 group !
# addgroup developer_myproject_group
↑ 添加了一个叫 developer_myproject_group 的 group
———————— 目录的权限: ———————————
“/media/pi/[UdiskName]/svn/repo/[my_project]/” 这个目录也是有权限的区分的。
权限类型:
“文件类型” | 拥有者(owner) | Group | Others |
---|---|---|---|
L(link) | — 或 rwx | 同← | 同← |
- (可执行文件) | — 或 rwx | 同← | 同← |
d(这是个目录) | — 或 rwx | 同← | 同← |
比如: drwxrwxr-x <– 表示 :目录 + 读写执 + 读写执 + 读-不可以写-执
-rwxr-xr– <– 可执行文件 + 读写执 + 读-不可以写-执 + 只读
drwxrwx— <– 目录 + 读写执 + 读写执 + 没有任何权限
–> 关于“目录” 为什么需要“可执行”权限,查查就知道了。==> 和这两个命令有关系:“
$ cd,
$ ls dir”
———————————————————————-
– 所以创建完了可以开发项目的小组后,给予这个小组访问 目录 的权限
# chgrp -R developer_myproject_group …/…/svn/repo/[my_project]
– 这行命令,将该目录的所属,归于 developer_*** 这个 group
# chmod -R 770 …/…/svn/repo/[my_project]
– 这行命令, 修改了 目录 的执行权限。
– 可以使用命令:
# ls -ald dir/ # <-- 查看dir/ 这个目录的相关信息。
—————- 组 与 用户: ——————————–
看文件 “/etc/group” 可以看到 组 下面有 那些用户。
developer_myproject_group:x:1002:developer1_kankan,developer2_jane,root
手动修改这个文件,就可以给 group 添加 用户。也可以通过命令的方式:
# gpasswd -a developer1_kankan developer_myproject_group
# gpasswd -a developer2_jane developer_myproject_group
–> 这样就往 group 中添加了用户。
—————————————————————-
– 所以,添加一下用户到 开发这个项目的小组中去:
`# gpasswd -a developer1_kankan developer_myproject_group`
–> 5. 以上,实际上还是停留在整个系统层面对 组 和 用户 的分配。
现在,需要对 “这个”项目的 svn 配置,让它(指 subversion server 这个软件)认识一些用户!# vim svnserve.config
# vim passwd
# vim authz
参考:Ubuntu14.04快速搭建SVN服务器及日常使用
↑ 这篇重点就是看上述 三个 vim 修改相关的内容!
该blog三个文件的修改部分(截图)选取 ↓
–更新:漏了启动svn serve 的(内容)代码! —
-> 6. 启动 svn serve
$ sudo svnserve -d -r /[your-path]/svn/repo
–查看 svn serve 是否成功启动:
$ sudo netstat -antp | grep "svnserv"
如果看到输出,svnserve 正在监听 3690 端口,说明开启成功。
开启服务的svn 路径不是那么好说明白,
简单地说就是,比如你 — 这样创建了一个托管项目:
$ sudo svnadmin create /[your-path]/svn/repo/[my-project]
那么,你打开svn serve 使用的命令就应该是:
$ sudo svnserve -d -r /[your-path]/svn/repo
-> 7. 使用 svn!
-> 因为这个 svn 管理的 项目版本 是最新的,所以可能有一部分本来写好的代码要传上去受到管理!– 第一次上传已经存在的一些项目文件:
import
参考:svn import 命令
– 把受控的整下来:
checkout
– 如果是调整项目的文件位置,或者目录结构,等等,先用以下命令:
$ svn add[/i] file1 file2 dir1 dir2
$ svn delete file1 file2 dir1 dir2
– 做了一些修改:
commit
一些参考:svn 的常见操作 import
-> 8. 使用 /project]http://[ip]/project 访问,而非 svn://[ip]/project
暂时不做更新,(svn:// 访问方式够用。)参考(reference):
This wiki document explains how to setup Subversion alias SVN on Ubuntu. The intended audience is experienced Linux users and system administrators.
-> 如果SVN 遇到什么问题,参考这一篇↓,非常重要!!!
This wiki document explains how to setup Subversion alias SVN on Ubuntu. The intended audience is experienced Linux users and system administrators.
相关文章推荐
- 树莓派(raspberry)启用root账户 分类: 服务器搭建 Raspberry Pi 2015-04-12 18:45 95人阅读 评论(0) 收藏
- 用树莓派搭建svn服务器
- 树莓派上搭建svn服务器
- Linux服务器使用五:搭建属于自己的SVN服务器
- svn服务器的搭建详解(一)
- 使用TortoiseSVN在Windows系统下搭建单机版SVN服务器版本控制
- SVN服务器搭建和使用(一)
- Centos搭建SVN服务器
- 搭建SVN服务器(支持http)
- SVN服务器搭建和使用(一)
- Linux下的SVN服务器搭建
- SVN服务器搭建
- linux svn服务器搭建笔记
- 【合集】用Raspberry Pi(树莓派)打造各种服务器
- SVN服务器的本地搭建和使用
- SVN服务器客户端以及环境的搭建和使用
- CentOS 7搭建SVN服务器
- SVN服务器搭建
- SVN服务器搭建和使用(一)
- 【转】linux window环境下svn服务器搭建