分类: 文章

  • LEDE上搭建svn服务器(二)

    我这里用的是斐讯K3,本来k3也是支持usb的接入的,但是我又有一台老母鸡(玩客云),感觉移动硬盘挂载到老母鸡上更方便,最最重要的是我看中的老母鸡的脱机下载功能,简直强到没有朋友.
    那么问题来了,k3上一些功能就用不了了,比如我打算搭一个svn的代码库,这样就没有足够的磁盘空间来实现。
    这个时候就需要有一个折中的实现了,简单的说就是用老母鸡做samba服务器,用k3刷一个lede去挂载,再安装相应的svn的服务器来实现。这里说起来原理很简单,但是实现起来还费了一些事。
    首先需要开启老母鸡的Samba服务,这个就需要下载相应的app了,这个是傻瓜式的,在app里找找就能找到。设置完成后顺手在电脑上试着访问一下,这个就比较简单了,直接\\192.168.1.x\。应该可以看到玩客云内的文件,这里我也就顺手映射一个网络驱动器。用起来跟本地磁盘一样一样的 。
    其次在k3种安装cifs的支持:
    opkg update opkg install kmod-fs-cifs #opkg install kmod-nls-utf8 kmod-nls-base kmod-crypto-hmac kmod-crypto-md5 kmod-crypto-misc cifsmount
    这里需要注意的是,这个模块安装完成以后,重启路由器才能生效。
    重启后简单使用的示例:
    mount -t cifs //cifs-server/share /localfolder -o user=username,password=password
    匿名访问:
    mount -t cifs //cifs-server/share /localfolder -o guest
    然后到挂载的目标路径查看一下有没有看到对应的文件夹文件夹,这里注意,这里的mount重启后会没了,可以ssh登录到系统,编辑/etc/fstab文件
    //shwde7xxx.ccr.corp.xxxxx.com/SE_DailyBuild   /home/12/345 cifs auto, username=gli16,password=xxxxx 0 0
    然后
    mount -a
    立即挂载,以后路由器重启以后也可以自动挂载了
    随后安装svn到lede上:

    SecureCrt连接到路由器

    2.  安装subversion-server

    opkg update    

        opkg install subversion-server

    这里需要在lede的web界面安装,否则会出现依赖错误,原因我没有做深究。

    3.  创建第一个repository

    mkdir -p /mnt/myrepo/test/

    svnadmin create /mnt/myrepo/test/

    4.  修改配置文件

    vi /mnt/myrepo/test/conf/svnserve.conf

    内容改成如下:

    [general]

    anon-access = none

    auth-access = write

    realm = My First Repository

    password-db = ../../passwd

    authz-db= ../../authz

    5.  /mnt/myrepo/test/conf/目录下的passwd,authz两个文件移动到/mnt/myrepo/,这样,除了test这个项目外,以后再创建的项目只需要把它自己的svnserve.conf修改成test相同的内容,就可以共享这两个文件进行用户管理。

    mv /mnt/myrepo/test/conf/passwd /mnt/myrepo/

    mv /mnt/myrepo/test/conf/authz /mnt/myrepo/

    6.  修改authz文件

    vi /mnt/myrepo/authz

    [/]

    #harry = rw

    #&joe = r

    #*= r

    test= rw

    6.  修改passwd文件

    vi /mnt/myrepo/passwd

    [users]

    #harry = harryssecret

    #sally = sallyssecret

    test= 123456

    7.  使svn支持提交日志的修改。(如果不需要修改提交日志,这一步可以跳过)

    cp /mnt/myrepo/test/hooks/pre-revprop-change.tmpl /mnt/myrepo/test/hooks/pre-revprop-change

    chmod a+x /mnt/myrepo/test/hooks/pre-revprop-change

    8.  启动svn服务

    /etc/init.d/subversion start

    9.  测试svn服务

    随便找台能上网的电脑,装上TortoiseSVN,我这里有个下载地址:http://pan.baidu.com/share/link?shareid=350727&uk=908253079

    安装完成之后。打开到D盘,在电脑空白右键,在弹出菜单中点击SVN CheckOut,弹出如下界面:

    输入URL of repository,其中test.xicp.net是上一章节自己注册的动态域名。点击OK。

    输入刚刚/mnt/myrepo/passwd文件中填写的账号密码:test, 123456。显示CheckOut Finished,再看看d:/test文件夹,显示了绿色的钩,说明svn服务可以使用了。

     

    参考链接:

  • 在路由器LEDE系统上安装svn-server版本库(一)

    ps:文中提到的k3不是,是斐讯k3刷过lede的固件以后使用。

     

    家里有一个斐讯的k3路由器做主路由器,想着能用就这么一直用了。但是目前有时会有公司做不完的工作,需要家里加班,但是拷代码太费劲,版本也不好控制,所以就折腾在路由器上面搭一个。

    这个需要考虑的是,我这个路由器上并没有挂载硬盘,因为这个路由器的供电能力实在是太弱了,根本供不起移动硬盘,上次用的固态移动硬盘才是凑合能用,那个硬盘这次还是给别的地方用过了,所以手头暂时没有可以用的硬盘,这里就拿U盘挂载起来当主磁盘用了,虽然寿命是个问题,但是短时间用用应该没啥问题。

    首先要说就是我也不是一个大神,就是一个小菜鸟,当然遇到问题首先就是百度解决(也不会搭梯子,墙出不去,问不到古哥。)因为LEDE本身是带有软件包的安装功能,所以我就先去搜索了。搜索svn相关字眼并没有结果,很烦!!搜索git倒是有,但是我的项目是建立在svn上,只能作罢。于是百度关键字“lede svn-server”,也没有合适的结果,后来想到lede是openwrt的衍生版,而openwrt时间长了,应该有大神移植的软件,然后换关键字“openwrt svn-server”,果然不出所望有合适的结果。搜到链接:Openwrt 路由器上 安装 svn server 大神的文章简直就是指路明灯,于是我连命令都不用改的就安装了svn server。

    1.opkg update

    2.opkg install subversion-server

    3.cat /proc/mounts明确挂载点/tmp/mnt/sda4

    然后cd到目标挂载点,再就是按流程走了,这里不抄了。。会用就行

  • arm-linux嵌入式设备上中文输入法的实现

    这里要说的是,这里的实现并不是我自己写的,我只是借用了别人的,实际就是syszuxpinyin具体情况,可以自行百度。

    这里我先分享下源码链接: https://pan.baidu.com/s/1jHZ13D0 密码: igjw。

    这里简单说一下调用方法,我这里没有用dll的方式,而是直接用源码的方式编译到工程中。首先将源码包含到程序中,在需要调用的类中包含input.h文件。同时需要实现一个槽函数

    void confirmString(QString gemfield);

    具体来说,就是在在.h中定义

    void confirmString(QString gemfield);

    InputMethod *inputmethod;

    在cpp中调用

    构造inputmethod = new InputMethod(this);

    析构delete inputmethod;

    输入inputmethod->open();

    获取输入confirmString(QString gemfield)
    其中gemfield就是输入的内容

    也可以调用inputmethod->setcurrentString(curstr);来获取当前的内容。

    这里因为对网络的日志编辑器也不会用,反正就是说明白就行。也可以直接QQ371359001联系交流指导我一下。这里还有个没实现的,我突然想起来应该是可以写成单例模式,这里并没有实现,有空可以改改。还有就是我对源码做了一点更改,原本的是基于4.x做的,我给改了一点改成了5.x的了。反正很简单的改改,也没啥技术含量,所以具体的改哪里我都玩个。