Articles by Yingcai FENG

  1. 在Ubuntu中安装WPS

    WPS的官网上已经提供了.deb安装包,但是只有32位的版本,目前还没有64位的版本。现在的电脑配置基本上都超4G内存了,使用64位的系统才能更好地利用更多内存,现在的Linux大部分都使用64位了。尽管WPS还没有推出64位的版本,但能在Linux上发行,已经是很大的进步。

    64位的系统要安装32位的软件,还需要动动脑筋。原来Ubuntu是提供一个ia32-libs安装包,把32位系统所需要的软件包都一起装了。在14.04上,并没有在官方的源中找到这个包。

    然而,尝试了一下之后,发现还是能把WPS装上。过程如下:

    首先,到wps网站上下载wps,我下载了wps-office_9.1.0.4751~a15_i386.deb。并下载字体包 wps-office-fonts_1.0_all.deb

    现在,开启32位支持 ...

    Tagged as : blog
  2. 在Ubuntu中安装RabbitVCS

    RabbitVCS是Linux下的图形化版本管理软件,支持SVN/GIT,官网是rabbitvcs.org,PPA网站是rabbitvcs-ppa

    RabbitVCS的操作很像Windows下的小乌龟:-),支持把操作集成到图形界面的右键菜单中,与TortoiseSVN是同样的,非常方便。

    安装的方法在PPA站点上有介绍,根据自己的系统的版本,把源加入到系统中,在14.04中,示例为:

    cat > /etc/apt/sources.list.d/rabbitvcs.list <<EOF
    deb http://ppa.launchpad.net/rabbitvcs/ppa/ubuntu trusty main
    EOF
    
    Tagged as : tech linux
  3. 在Ubuntu中安装Oracle JDK

    尽管OpenJDK发展到现在已经能兼容绝大多数的标准Java应用场景,但是在某些微小的方面,仍然存在一点小问题。在Ubuntu中安装的Eclipse,使用OpenJDK时,使用内置的浏览器会有点问题,因此,我需要转换到Oracle的JDK。

    可以手工安装OracleJDK,比较烦琐。可以通过已打包好的PPA,进行安装:

    add-apt-repository ppa:webupd8team/java
    apt-get update
    apt-get install oracle-java7-installer
    

    webupd8的官方网站为webupd8.org。他们提供了一系列的软件包,见packages

    Tagged as : tech linux java
  4. Openstack中使用Keypair连接到VM

    通常,系统的用户名和密码都是安装过程中指定的,然后通过安全的渠道交到最终使用者的手中。这种传统的方式在进行大规模的服务器管理时就非常麻烦,因为每台机器都需要指定用户名和密码,导致需要管理的密码数量非常庞大。如果需要更改密码,还需要逐个来修改!!

    在云计算中无法使用这种方式来管理虚拟机系统。镜像的开发者无法得知谁是最终的用户,最终用户无法确保开发者会不会用默认的用户名和密码来干坏事。

    因此,云计算普通会采用一种在系统第一次运行时把用户名密码注入到系统的办法,Openstack与Amazon的AWS都使用这样的办法来管理,但是不是通过用户名密码,而是通过一对密钥对。密钥对是用户自己生成的,可以在多台服务器上使用,用户使用私钥连接到各个服务器。

    在Openstack Dashboard上,生成一对KeyPair。公钥保存在Openstack上,私钥在生成时直接下载到用户本地。Openstack的私钥保存为一个.pem文件。

    密钥对生成之后,在启动实例时,为VM指定一个此密钥对。那么在VM初始化时,当网络初始化完成之后,安装在VM系统里面的初始化工具,向169.254.169.254这个特殊的IP地址,向Openstack请求VM的元数据(metadata ...

    Tagged as : tech openstack
  5. 使用devstack部署openstack环境

    devstack是一套openstack的部署脚本,对openstack初学者而言,是最好不过的openstack部署脚本了。

    devstack的官方网站为devstack.org。官方网站上已经对devstack的用途有介绍,这里介绍一下我在测试中使用到的一些注意问题。

    devstack整套脚本放在github中,使用下面的命令clone到本地:

    git clone https://github.com/openstack-dev/devstack.git
    

    下载完成后,需要进行一个简单的配置的,在官网中给出了一个最小的配置devstack-mini-config

    然后,进入到目录中,以普通用户的权限执行stack.sh,进行openstack的安装。

    cd devstack && ./stack.sh
    
    Tagged as : tech openstack
  6. Linux网络配置

    Ubuntu停用Network Manager

    Desktop版本的Ubuntu,使用Network Manager来进行网络管理,它会导致在/etc/network/interface中的设置不生效。由于在进行一些网络功能的开发时,需要用到/etc/network/interface文件管理网络,需要停用Network Manager。

    service network-manager stop
    

    并向/etc/network/interface中写入具体的配置

    cat>>/etc/network/interface<<EOF
    auto eth0
    iface eth0 inet static
    address 192 ...
    Tagged as : tech linux
  7. 常用Linux命令

    本文整理一些常用的Linux命令,以及shell编程中使用到常用语句。

    shell中判断

    使用if进行判断

    if [ <condition> ]; then
        # Do something
    fi
    

    包含多个分支,使用if-elif

    if [ <condition> ]; then
        # Do something
    elif [ <condition> ]; then
        # Do somethin
    fi
    

    watch查看命令多次执行的结果

    watch能多次执行命令,并把命令的结果显示出来,支持每隔n秒执行一次命令,并把执行结果的差异显示。

    watch -n <seconds> -d <commands>
    

    tar压缩打包

    常用的tar参数包括:

    • -c 创建包 ...
    Tagged as : tech linux shell
  8. Windows桌面共享2

    经过一天的尝试,使用Windows Desktop Sharing API写了一点原型代码,并运行起来查看效果。

    我是使用C#来调用这个API的(本身是COM,可以由Visual Studio自动添加包装)。原型系统的代码分为服务器端(Sharer)和客户端(Attendee),只是简单地把整个桌面全部共享出来。下面,是一些编程中的核心的内容。

    Sharer端

    在Sharer端,首先要引入API的COM,名称为rdpcomapi 1.0 Type Library,文件路径为C:\Windows\System32\rdpencom.dll。在引入的同时,Visual Studio会自动把这个COM进行包装,从而在项目的引用中可看到RDPCOMAPILib这个库,而查看其属性 ...

    Tagged as : tech windows C#
  9. Windows桌面共享

    最近在做一个windows桌面共享的项目,找了一系列的方法:

    视频广播方式

    视频广播方式可能是最具备跨平台特性的方式。在本地程序录制桌面的视频,或者基于硬件直接录制然后播放,然后实时发送到各个客户端。这种思想有很多的实现方式,而且整个结构很容易理解和扩展。

    录制的方式,总结了一下,找到下面的录制方式:

    1. windows GDI 截图
    2. directShow 直接录制
    3. mirror driver 或 mini port 驱动录制
    4. ffmpeg 录制

    为了降低分享桌面的主机的负载,可以引入特定的视频广播服务器,由服务器进行视频转发。具体的协议可通过udp/rtsp等实现。

    这种方式具备与平台无关的特性,视频录制方式可随时扩展,而通过标准的接口把数据提交到转发服务器。但实现起来,需要做的工作也很多,需要理解基本的视频处理知识,实现一个良好的系统框架。

    Windows Desktop Sharing ...

    Tagged as : windows
  10. 使用virtualenv建立python开发环境

    在python开发中,经常性需要安装一系列的依赖库。如果使用root用户安装到系统的python环境中,容易导致python目录越来越庞大。而后面更加麻烦的是,当开发完成之后,不知道该删除哪些依赖库了,因此也不敢删了。现在的Linux发行版中,各种组件对python环境的依赖很强,不小心删错了,绝对会让人追悔莫及!

    为此,我们绝对需要把我们的开发环境与系统的python环境隔离,让依赖库只在开发目录下存在,不会影响到系统python环境。使用virtualenv工具,可以轻易地帮助我们达成目的。

    virtualenv工具建立一个项目专用的python环境,在该环境中,有独立的bin include lib local等目录,里面会有一个单独的python环境。

    如果要在建立一个virtualenv环境(目录为.env),使用命令:

    virtualenv .env
    

    然后,使用命令:

    tree -d .env
    

    可以查看到整个目录的树结构

    ├── bin ...
    Tagged as : tech python

Page 1 / 2