分类 【乱七八糟】 下的文章

Linux下安装minecraft服务端

我的小CubieBoard服役1年左右了,最近正好临近过年,有一点小时间,于是把minecraft折腾到它上面,当然这里要小小的羞愧一把,我用的不是官方的minecraft,而是bukkit,原因你懂的
总的来说,参考的文章在这里:官方论坛描述
这里把我做的过程记录下来:
1.安装JDK、安装screen什么的就不多说了,不会的朋友可以自行google
2.运行:

curl "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" -o BuildTools.jar

或者

wget "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar" -O BuildTools.jar

这取决于你的Linux中有curl还是wget命令,当然你也可以自己在windows上下载好,再传到linux中,都可以
3.运行

java -jar BuildTools.jar

等待编译结束即可

最后,如果需要升级server,在备份好的前提下,再次运行步骤三的命令即可
发生的小插曲:
1.ARM版的JDK8下面地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-arm-downloads-2187472.html
2.默认JDK版本的选择:

mc@CubieTruck:~$ sudo update-alternatives --install /usr/bin/javac javac /opt/jdk8/bin/javac  55
mc@CubieTruck:~$ sudo update-alternatives --install /usr/bin/java java /opt/jdk8/bin/java  55
update-alternatives: using /usr/lib/jvm/java-7-oracle/bin/java to provide /usr/bin/java (java) in auto mode
mc@CubieTruck:~$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/bin/java       63        auto mode
  1            /opt/jdk8/bin/java                        55        manual mode
  2            /usr/lib/jvm/java-7-oracle/bin/java       63        manual mode
  3            /usr/lib/jvm/java-7-oracle/jre/bin/java   63        manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /opt/jdk8/bin/java to provide /usr/bin/java (java) in manual mode
mc@CubieTruck:~$ java -version
java version "1.8.0_33"
Java(TM) SE Runtime Environment (build 1.8.0_33-b05)
Java HotSpot(TM) Client VM (build 25.33-b05, mixed mode)
mc@CubieTruck:~$ sudo update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).

  Selection    Path                                  Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/bin/javac   63        auto mode
  1            /opt/jdk8/bin/javac                    55        manual mode
  2            /usr/lib/jvm/java-7-oracle/bin/javac   63        manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /opt/jdk8/bin/javac to provide /usr/bin/javac (javac) in manual mode

新年新气象

转眼之间就迈入了2015年的大门,在过去的一年里折腾了乱七八糟的事情:树莓派、cb3、golang,当然后自己的老本行,Java。
新的一年,工作岗位也发生了变化,总的来说是从PM相关的岗位换回到了技术岗位,当然coding的机会还是比较少的,更多的是规划、管理的职责。
其实我这个人比较适合在一个大的范围内,没有具体的工作要求,比如负责部门的技术管理工作这个大范围下,没有具体的细项要求,这样对我来说反而更容易发挥。
不管怎么说,公司总归是要盈利的,个人总归是要不断进步的,新的一年继续努力,上对得起老板给的这份工资以及股权,下对得起弟兄们的信赖,给弟兄们创造进步的空间,做更好的规划。
2015,加油。

Mac OS X开启SSH服务,并修改自定义端口

开启ssh服务没什么好说的,只要从系统偏好设置->共享->勾选“远程登录” 即可

修改默认端口,这个鸟东西把我折腾的死去活来,因为/etc/下面也有sshd_config文件,长的和Linux下一模一样,我就想当然的修改这个文件,然后执行

sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

屡次尝试都未果。
无奈之下只得Google之,【找到了这么个网页】,按照其中的方法在10.9和10.10上试验成功。

简单的把过程写一下:
1.备份ssh.plist:

sudo cp /System/Library/LaunchDaemons/ssh.plist /System/Library/LaunchDaemons/ssh.plist.bak

2.编辑/System/Library/LaunchDaemons/ssh.plist 文件,我们看到里面有Sockets这个key:

 <key>Sockets</key>
        <dict>
                <key>Listeners</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>ssh</string>
                        <key>Bonjour</key>
                        <array>
                                <string>ssh</string>
                                <string>sftp-ssh</string>
                        </array>
                </dict>
        </dict>

将其中的SockServiceName对应的string修改为想要的端口即可,不过我这里修改的是除了22端口,还额外的监听了2042这个端口,所以没修改Listeners,我又添加了一个Listeners,修改后的全部文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Disabled</key>
        <true/>
        <key>Label</key>
        <string>com.openssh.sshd</string>
        <key>Program</key>
        <string>/usr/libexec/sshd-keygen-wrapper</string>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/sbin/sshd</string>
                <string>-i</string>
        </array>
        <key>Sockets</key>
        <dict>
                <key>Listeners</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>ssh</string>
                        <key>Bonjour</key>
                        <array>
                                <string>ssh</string>
                                <string>sftp-ssh</string>
                        </array>
                </dict>
                <key>Listeners2</key>
                <dict>
                        <key>SockServiceName</key>
                        <string>2042</string>
                </dict>
        </dict>
        <key>inetdCompatibility</key>
        <dict>
                <key>Wait</key>
                <false/>
        </dict>
        <key>StandardErrorPath</key>
        <string>/dev/null</string>
        <key>SHAuthorizationRight</key>
        <string>system.preferences</string>
        <key>POSIXSpawnType</key>
        <string>Interactive</string>
</dict>
</plist>

Listeners2就是我添加的内容

3.重新载入配置:网上说的那个launchctl stop/start方法在ssh服务上不适用,重启以后还是不会重新加载配置文件,应当进行如下操作:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load /System/Library/LaunchDaemons/ssh.plist

4.telnet或者ssh自己新的端口尝试一下吧。


补充一个单行命令版本的修改ssh服务端口脚本(看上去逻辑是对的,但我没验证):

read -p "Please enter new SSH Port number: " sshport; sudo sed -i "-bak" -n "/SockServiceName/{p;n;s/>.*</>$sshport</;};p" /System/Library/LaunchDaemons/ssh.plist; echo "SSH Port $sshport. Restart service for changes to take effect."

Mac OS X(10.9/10.10)制作usb安装盘 - 单行命令版

很简单,仔细看下面的命令,替换[文字]为自己电脑中的路径/盘符即可

sudo [/Applications/Install\ OS\ X\ Yosemite\ Beta.app]/Contents/Resources/createinstallmedia --volume [/Volumes/SDXC] --applicationpath [/Applications/Install\ OS\ X\ Yosemite\ Beta.app] --nointeraction

[/Applications/Install OS X Yosemite Beta.app] 替换为安装文件的路径
[/Volumes/SDXC]替换为u盘或者sdcard的挂载路径

10.9和10.10系统下测试通过

Sublime Text3 VirtualEnv *.sublime-project文件配置之二

{
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "build_systems":
    [
        {
            // 在选定 Tools | Build System | Automatic 时使用。Sublime Text使用这个 选择器自动为活动试图选择构建系统
            "selector": "source.python",
            // 在运行``cmd``前会切换到该目录。运行结束后会切换到原来的目录。
            "working_dir":"D:/Developer/pyenv/python27",
            // 输出``cmd``的编码。必须是合法的Python编码,缺省为``UTF-8``
            "encoding":"UTF-8",
            // 在环境变量被传递给``cmd``前,将他们封装成词典。
            "env": {"PYTHONPATH":"."},
            // 如果该选项为``true`` ,``cmd``则可以通过shell运行
            "shell":false,
            // 该选项可以在调用``cmd``前替换当前进程的’ PATH 。原来的’ PATH 将在运行后恢复。使用这个选项可以在不修改系统设置的前提下将目录添加到’ PATH 中
            "path":"./Scripts;%PATH%",
            // For Mac OS X and Linux and Unix
            //"path":"/Users/user/work/myvirtualenv/bin:$PATH",
            "name": "Run virtualenv python",
            // 包括命令及其参数数组。如果不指定绝对路径,外部程序会在你系统的:const:PATH 环境变量中搜索。
            "cmd": ["python.exe", "-u", "$file"],
            // ``file_regex``选项用Perl的正则表达式来捕获构建系统的错误输出,主要包括四部分内容,分别是 file name*, line number, column number and error message. Sublime Text 在匹配模式中使用分组的方式捕获信息。file name 和 *line number*域是必须的
            "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)"
            // variants 用来替代主构建系统的备选。如果构建系统的选择器与激活的文件匹配,变量的``名称``则 会出现在 Command Palette 中。
            // line_regex: 当``file_regex``与该行不匹配,如果``line_regex``存在,并且确实与当前行匹配, 则遍历整个缓冲区,直到与``file regex``匹配的行出现,并用这两个匹配决定最终要跳转的文件 或行
            
            // $file_path    当前文件所在路径, 比如 C:\Files.
            // $file   当前文件的完整路径, 比如 C:\Files\Chapter1.txt.
            // $file_name  当前文件的文件名, 比如 Chapter1.txt.
            // $file_extension 当前文件的扩展名, 比如 txt.
            // $file_base_name 当前文件仅包含文件名的部分, 比如 Document.
            // $packages   Packages 文件夹的完整路径.
            // $project    当前项目文件的完整路径.
            // $project_path   当前项目文件的路径.
            // $project_name   当前项目文件的名称.
            // $project_extension  当前项目文件的扩展部分.
            // $project_base_name  当前项目仅包括名的部分.
        }
    ]
}