2014年5月

NoSQL Databases, Java, Terrastore, Neo4j, Voldemort, HBase, InfoGrid, HyperGraphDB, Perst, NeoDatis ODB

NoSQL正在崛起。许多企业和用户已经将MySQL数据库替换成了NoSQL数据库。NoSQL使分析非结构化的数据变得更容易,因此开发者必须意识到存在于NoSQL世界中的趋势和工具。

1.Terrastore

新的文档存储技术可以提供先进的伸缩性和弹性而不必牺牲一致性。Terrastore基于Trrracotta,它依赖于一个业界公认的,快速的(而且又酷)集群技术。

2.Neo4j

开源的图形数据库,用Java实现。开发者将Neo4j描述为“嵌入式,基于磁盘,完全事务的Java持久引擎,将数据结构化存储在图中而不是在二维表格中”

3.Voldemort

分布式键值存储系统。本质上说是一个大型,分布式,持久的,容错哈希表。对于应用,它可以使用类似active-record或者hibernate的O/R映射工具,这些可以提供水平扩展和更高的可用性,但是会损失巨大的便利性。

4.HBase

Apache HBase是Google的Chang et al开发的,是继其开发的分布式存储系统Bigtable之后的另一个开源的、分布式、版本化的、非关系型数据库。

5.InfoGrid

带有很多额外的软件组件的Web图形数据库,使在图形数据库基础上开发Rest-ful的web应用变得很容易。

6.HyperGraphDB

通用的、可扩展、便携、嵌入式、开源数据存储机制。它是一个特别为人工智能和web语义项目设计的图形数据库,同样可以用于不同大小项目的嵌入式面向对象数据库。

7.Perst

Perst是McObject的开源实现,双许可证,面向对象的嵌入式数据库系统(ODBMS)。它的一个版本是用Java开发的嵌入式数据库,另外一个用C#实现(对于Microsoft .NET Framework的应用而言)。

8.NeoDatis ODB

一个简单的运行在Java、.Net、 Google Android、 Groovy 和 Scala上的对象数据库。


via: http://www.efytimes.com/e1/fullnews.asp?edid=138992

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

如果你把Ubuntu从13.10更新到14.04,你也许会遇到用Unity桌面环境登录时冻结的现象。引导进入Ubuntu14.04,输入验证信息,系统会挂起,冻结在那里。如果你稍微幸运些,你还能看到鼠标光标、桌面背景,仅此而已。没有Unity触发器,也没有顶部面板等等。你的ubuntu基本上不可用了。

缺少Unity触发器和面板以及系统冻结的问题,可以通过重新安装Unity来解决。让我们看看怎么做:

重新安装14.04的Unity 以解决系统冻结的问题

好吧,如果你正被困在一个冻结的系统上,按下Ctrl+Alt+F2。这会让你进入一个命令行界面而不是默认的用户桌面界面。切换到命令行界面后,输入用户名和密码登录之后,使用下面的命令重装Unity桌面环境:

sudo apt-get update
sudo apt-get install --reinstall ubuntu-desktop
sudo apt-get install unity
sudo shutdown -r now

最后一个命令是重启系统,重启之后,你的Unity应该就变好了。

解决Nvidia显卡的Unity冻结问题

我没有使用过Nvidia的显卡,但是我找到了别人解决这个问题的方法。尽管上面的技巧对我来说有效,但是我没有过验证下面的命令。使用Nvidia的用户,请告诉我下面的步骤是否工作:

和上面一样使用Ctrl+Alt+F2登录到命令行界面,输入下面的命令:

sudo apt-get update
sudo apt-get install --reinstall ubuntu-desktop
sudo apt-get install unity
sudo apt-get remove --purge nvidia*
sudo shutdown -r now

如果重启之后Unity恢复了,记得重新安装你的Nvidia显卡的驱动,因为你已经卸载了它。

我希望这些技巧能够帮助你从冻结的unbuntu 14.04中恢复。最后,任何的问题和建议都欢迎来提。


via: http://itsfoss.com/fix-unity-freezes-after-login-ubuntu-14-04/

译者:ggaaooppeenngg 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

无论何时,你开始在 Unity Dash 搜索计算机中的应用程序或文件时,你的检索词将被自动发送给第三方,如亚马逊,并且第三方将依据您的搜索词显示相关结果(主要是广告)。如果你不喜欢这个功能,感觉真的打扰到你,你可以禁用它。

例如,当我在 Unity Dash 中输入 “Terminal” 时,将显示 “Terminal” 应用和 web 上其他第三方的东东(我要发狂了!我不想要这些!)。

正如上面的截图所见,Unity显示内置的 Terminal 应用、引用链接、天气链接和其他第三方的推荐,如电影等。这是非常恼人的并且在 Unity Dash 上看起来很糟。同时,它显示了太多的搜索结果,并使我迷惑。

如果你像我一样不需要这个功能,在你的终端输入以下命令:

wget -q -O - https://fixubuntu.com/fixubuntu.sh | bash

上述脚本的内容如下:

#!/bin/bash

GS="/usr/bin/gsettings"
CCUL="com.canonical.Unity.lenses"

# Figure out the version of Ubuntu that you're running
V=`/usr/bin/lsb_release -rs`
# The privacy problems started with 12.10, so earlier versions should do nothing
if awk "BEGIN {exit !($V < 12.10 || $V >= 14.10)}"; then
  echo "Good news! This version of Ubuntu is not known to invade your privacy."
else

  # Check Canonical schema is present. Take first match, ignoring case.
  SCHEMA="`$GS list-schemas | grep -i $CCUL | head -1`"
  if [ -z "$SCHEMA" ]
    then
    printf "Error: could not find Canonical schema %s.\n" "$CCUL" 1>&2
    exit 1
  else
    CCUL="$SCHEMA"
  fi

  # Turn off "Remote Search", so search terms in Dash don't get sent to the internet
  $GS set $CCUL remote-content-search none

  # If you're using earlier than 13.10, uninstall unity-lens-shopping
  if [ $V \< 13.10 ]; then
    sudo apt-get remove -y unity-lens-shopping

  # If you're using a later version, disable remote scopes
  else
    $GS set $CCUL disabled-scopes \
      "['more_suggestions-amazon.scope', 'more_suggestions-u1ms.scope',
      'more_suggestions-populartracks.scope', 'music-musicstore.scope',
      'more_suggestions-ebay.scope', 'more_suggestions-ubuntushop.scope',
      'more_suggestions-skimlinks.scope']"
  fi;

  # Block connections to Ubuntu's ad server, just in case
  if ! grep -q "127.0.0.1 productsearch.ubuntu.com" /etc/hosts; then
    echo -e "\n127.0.0.1 productsearch.ubuntu.com" | sudo tee -a /etc/hosts >/dev/null
  fi

  echo "All done. Enjoy your privacy."
fi

再次,我进入到 Unity dash 的终端。现在 Unity 只显示终端应用,而不是无用的垃圾,现在 Unity Dash 看起来还不错。

全部搞定,让那些杂乱的东西再也不要回来了。

欢呼~!

更新:这一招只适用Unity desktop。如果你使用其他的比如GNOME,LXDE或Xfce,你不用这么做。同时,这个在线搜索功能将不会包含在Ubuntu 14.10和即将推出的版本中。

Source & Reference: Fixubuntu


via: http://www.unixmen.com/disable-unity-online-search-feature-ubuntu-14-04-lts-older-versions/

译者:tenght 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Sublime Text 3目前还处于beta测试状态,目前最新的版本为Build 3059。 这个教程中我们将通过AUR安装Sublime Text 3 build 3059。

打开终端并运行下列命令, 选择是否(Y/N)继续安装(这里选择Y)。

sudo yaourt -S sublime-text-dev

loading packages...
resolving dependencies...
looking for inter-conflicts...
Packages (1): sublime-text-dev-3.3059-1
Total Installed Size: 16.02 MiB
:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring           [########################################] 100%
(1/1) checking package integrity         [########################################] 100%
(1/1) loading package files              [########################################] 100%
(1/1) checking for file conflicts        [########################################] 100%
(1/1) checking available disk space      [########################################] 100%
(1/1) installing sublime-text-dev        [########################################] 100%
 ------------------------------------------------------------------------------
==> sublime-text-dev install/upgrade note:
 ------------------------------------------------------------------------------
 To disable in-application reminders about new Sublime Text dev versions,
 add the following setting to your User Preferences file:
 "update_check": false
------------------------------------------------------------------


via: http://www.unixmen.com/install-sublime-text-3-build-3059-manjaroarch-linux/

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

我是一个刚接触 Linux 和 Unix 的新手。我该如何改变一个命令的根目录?我要怎样改变一个进程的根目录呢,比如用 chroot 命令将web服务与文件系统隔离?我要如何使用 chroot 恢复密码或修复基于 Linux/Unix的受损坏的环境?

在 Linux和类 Unix 系统下每一个进程/命令的当前工作目录称之为进程/命令的根目录(译注:译者以为此处有误,实际上没有进行过chroot的进程,其根目录是系统的根目录,而不是其工作目录)。你可以使用 chroot 命令改变一个命令的根目录,这最终将会改变当前运行的进程及其子进程的根目录。

如果一个进程/命令运行在一个不能访问外部根目录文件的已修改环境中。这种修改环境通常被称为"监禁目录"(jail)或是"chroot 监禁"。只有特权进程和根用户才能使用 chroot 命令。然而这通常是很有用的:

  1. 将特权分配给无特权的进程,例如 Web 服务或 DNS 服务。
  2. 建立测试环境。
  3. 不使程序或系统崩溃下,运行旧程序或 ABI 兼容的程序。
  4. 系统恢复。
  5. 重新安装引导装载程序,例如 Grub 或 Lilo。
  6. 密码找回,重置一个已丢失的密码等。

用途

chroot 命令 改变其当前目录,并将根目录变为指定目录,然后如果提供了命令则运行命令,也可以运行一个用户的交互式shell的副本(译注:即bash等。)。请注意并不是每一个程序都可以使用 chroot 命令。

语法

基本语法如下:

chroot /path/to/new/root command

或者

chroot /path/to/new/root /path/to/server

或者

chroot [options] /path/to/new/root /path/to/server

chroot 命令实例

在这个例子中,建立了一个"迷你监狱"用来测试一个只有 ls 命令的 Bash shell。首先用 mkdir 命令设定好 jail "监狱" 路径。

$ J=$HOME/jail

在 $J 内创建目录:

$ mkdir -p $J
$ mkdir -p $J/{bin,lib64,lib}
$ cd $J

cp 命令将/bin/bash 和 /bin/ls 复制到 $J/bin/ 路径下:

$ cp -v /bin/{bash,ls} $J/bin

将所需库文件拷贝到$J。可以用 ldd 命令找到 bash 所依赖的共享库。

$ ldd /bin/bash

输出样例:

linux-vdso.so.1 =>  (0x00007fff8d987000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000032f7a00000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000032f6e00000)
libc.so.6 => /lib64/libc.so.6 (0x00000032f7200000)
/lib64/ld-linux-x86-64.so.2 (0x00000032f6a00000)

直接拷贝上面输出中的库文件到 $J 目录:

$ cp -v /lib64/libtinfo.so.5 /lib64/libdl.so.2 /lib64/libc.so.6 /lib64/ld-linux-x86-64.so.2 $J/lib64/

输出样例:

`/lib64/libtinfo.so.5' -> `/home/vivek/jail/lib64/libtinfo.so.5'
`/lib64/libdl.so.2' -> `/home/vivek/jail/lib64/libdl.so.2'
`/lib64/libc.so.6' -> `/home/vivek/jail/lib64/libc.so.6'
`/lib64/ld-linux-x86-64.so.2' -> `/home/vivek/jail/lib64/ld-linux-x86-64.so.2'

复制 ls 命令所需的库文件到 $J 目录下。用 ldd 命令打印出 ls 命令依赖的共享库:

$ ldd /bin/ls

输出样例:

linux-vdso.so.1 =>  (0x00007fff68dff000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00000032f8a00000)
librt.so.1 => /lib64/librt.so.1 (0x00000032f7a00000)
libcap.so.2 => /lib64/libcap.so.2 (0x00000032fda00000)
libacl.so.1 => /lib64/libacl.so.1 (0x00000032fbe00000)
libc.so.6 => /lib64/libc.so.6 (0x00000032f7200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00000032f6e00000)
/lib64/ld-linux-x86-64.so.2 (0x00000032f6a00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000032f7600000)
libattr.so.1 => /lib64/libattr.so.1 (0x00000032f9600000)

你可以一个个的复制库文件,为了更高效的作业,我们也可以使用bash shell 的循环指令实现:

list="$(ldd /bin/ls | egrep -o '/lib.*\.[0-9]')"
for i in $list; do cp  -v "$i" "${J}${i}"; done

输出样例:

`/lib64/libselinux.so.1' -> `/home/vivek/jail/lib64/libselinux.so.1'
`/lib64/librt.so.1' -> `/home/vivek/jail/lib64/librt.so.1'
`/lib64/libcap.so.2' -> `/home/vivek/jail/lib64/libcap.so.2'
`/lib64/libacl.so.1' -> `/home/vivek/jail/lib64/libacl.so.1'
`/lib64/libc.so.6' -> `/home/vivek/jail/lib64/libc.so.6'
`/lib64/libdl.so.2' -> `/home/vivek/jail/lib64/libdl.so.2'
`/lib64/ld-linux-x86-64.so.2' -> `/home/vivek/jail/lib64/ld-linux-x86-64.so.2'
`/lib64/libpthread.so.0' -> `/home/vivek/jail/lib64/libpthread.so.0'
`/lib64/libattr.so.1' -> `/home/vivek/jail/lib64/libattr.so.1'

最后,chroot 到你的新jail:

$ sudo chroot $J /bin/bash

尝试浏览一下 /etc 或 /var:

# ls /
# ls /etc/
# ls /var/

改变了根目录的 bash 和 ls 程序现在被监禁在$HOME/$J这个特殊目录中,而且不能再访问外部的目录树,这个目录可以看做是它们的"/"(root)目录。如果配置正确的话,这会极大增强安全性。我通常用这种技术锁定以下的应用程序。

  1. Apache - Red Hat / CentOS: Chroot Apache 2 Web Server
  2. Nginx - Linux nginx: Chroot (Jail) Setup
  3. Chroot Lighttpd web server on a Linux based system
  4. Chroot mail server.
  5. Chroot Bind DNS server 等等

如何退出 chroot 监禁呢?

键入 exit 即可

$ exit

上述会话样例如下:

Animated gif 01: Linux / Unix: Bash Chroot ls Command Demo

Gif 动画01: Linux / Unix: Bash Chroot ls 命令演示

查找服务是否存在于 chrooted 监禁内

你可以用下面两个命令[轻松的找出 Postfix 邮件服务是否已经 chrooted]:

pid=$(pidof -s master)
ls -ld /proc/$pid/root

从基本Linux服务中输出样例:

lrwxrwxrwx. 1 root root 0 Mar  9 11:16 /proc/8613/root -> /

PID 8613 指向了 / (root) 也就是说这个程序的根目录并没有被改变或是被 chroot。这个方法非常的快速而又直接,不需要打开配置文件。下面是从已经 chroot 的 ngnix 服务中得到的另一个例子:

pid=$(pidof -s master)
ls -ld /proc/$pid/root

输出样例:

lrwxrwxrwx 1 nginx nginx 0 Mar  9 11:17 /proc/4233/root -> /nginxjail

程序的根目录已经改为 /nginxjail。

用 chroot 救援和修复软件RAID(磁盘阵列)系统

我先假设基于软RAID的 Linux 系统无法正常启动。所以你需要用Live CD或用基于网络的内核应急模式来修复系统。在这个例子中,我用了 Live Linux DVD/CD 启动一个基于 RHEL 的系统,然后再 chroot 到 /dev/sda1 和 /或 /dev/md0 修复问题:

## 在 Live CD 的提示符下,键入以下命令来恢复数据。##
## /dev/sda1 系统主分区##
# 建立 jail 目录
d=/chroot
mkdir $d

# 挂载 sda1 和其他所需目录
mount /dev/sda1 $d
mount -o bind /dev $d/dev
mount -o bind /sys $d/sys
mount -o bind /dev/shm $d/dev/shm
mount -o bind /proc $d/proc

# 挂载软件RAID /dev/md0
mount /dev/md0 $d/data

# Chroot 到我们新建的 jail 中。这将允许我们修复引导装载系统(bootloader),或者在所有文件被/dev/null吞噬之前抓取数据。
chroot $d

#你能看见吗?
ls
df

# 将文件置入安全路径
rsync -avr /path/to/my_precious_data_dir [email protected]:/path/to/dest

# 退出 jail ,然后重启或者根据个人所需格式化服务 ;)
exit
umount {dev,sys,[...],}
reboot

别急,还有更精彩的内容!

查看nixCraft下所有其他有关 chroot 命令的文章:

  1. Ubuntu: Mount Encrypted Home Directory (~/.private) From an Ubuntu Live CD
  2. Linux Configure rssh Chroot Jail To Lock Users To Their Home Directories Only
  3. Fix a dual boot MS-Windows XP/Vista/7/Server and Linux problem
  4. Restore Debian Linux Grub boot loader

在 Linux 和 类Unix 系统下 chroot 应用程序的注意事项

你应该在各种情况下都用 chroot 特性吗?从上面的例子看出,这个程序是相当简单的,但是最终可能出现几种不同的问题而结束,例如:

1.在 jail 中缺失库文件可能直接导致 jail 崩溃。 1.一些复杂的程序不好被 chroot。所以我建议你要么尝试真正的jail,例如FreeBSD提供的,要么用虚拟化解决,比如Linux 下的 KVM。 1.正在运行某一程序的 jail 不能再运行其他程序,不能更改任何文件,也不能"假设"另一个用户的身份。放宽这些限制,会降低你的安全性,请根据具体情况 chroot。

还要注意:

  1. 当你升级本地程序时,不要忘记升级已 chroot 的程序。
  2. 并非所有程序能够或者应该被 chroot。
  3. 任何需要 root 权限操作的程序,对其 chroot 是没意义的。因为通常 root 用户都能脱离 chroot。
  4. Chroot 并不一个高招。更多的可以学习如何保护和加强系统的各个部分

choort 部分命令选项

取自 man 帮助页面chroot(8):

  --userspec=USER:GROUP  使用指定的 用户 和 组 (ID 或 名称)
  --groups=G_LIST        指定补充组 g1,g2,..,gN 
      --help     显示帮助并退出
      --version  显示版本信息并退出

参见


via: http://www.cyberciti.biz/faq/unix-linux-chroot-command-examples-usage-syntax/

译者:Luoxcat 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

Ubuntu 有基于不同桌面环境的几个官方版本。默认的 Ubuntu 自带 Unity 桌面,Kubuntu 则是KDE,Lubuntu 用LXDE,Xubuntu 自带Xfce。除此之外,还有一些其它的版本,但这些是最流行的官方桌面版本。

你该如何选择最适合你的 Ubuntu?一种方法是下载 Ubuntu 不同版本的 ISO 镜像并且通过Live CD或者USB实时运行。但是,这将意味着你将会下载多个 ISO 文件,一个个地写入 USB 盘或者 Live CD。有点麻烦,是吧?

这就是Ubuntu AIO(ALL IN ONE)出现的原因。该项目是由Start Ubuntu小组部分成员发起的,Ubuntu 的 AIO DVD 可以让你在一张光盘或者一个U盘中尝试 Ubuntu Unity,Lubuntu,Xubuntu,Kubuntu 和 Ubuntu Gnome 等不同版本。

当然 Ubuntu AIO 也有一些缺点。首先它体积太大了,有将近4.7GB。所以,它不适合于标准的4GB U盘(你得刻录到光盘,或者虚拟光盘)。而且它只有两个版本,第一个是64位版本,包括有 Ubuntu,Kubuntu 和 Ubuntu Gnome,另外一个,则包含有32位版本的 Xubuntu 和 Lubuntu。尽管有缺点,这是一个不错的项目,可以帮助我们选择恰当的 Ubuntu 版本。

下载 Ubuntu AIO DVD

点此了解更多。

享受 Ubuntu 吧!


via: http://itsfoss.com/ubuntu-aio-dvd-puts-ubuntu-1404-flavors-disk/

译者:MikeCoder 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出