可以启用 firefox 的多进程模式了

今天我的 opensuse 自动更新了 firefox 48。最重要的变化就是现在有了与 chrome 类似的多进程模式。但是看起来很奇怪,只有两个进程?一个 firefox ui 进程,我为 firefox,一个remote tab 进程,名为 web,居然不是每个 tab 一个进程。。

不管怎么样,总归是件好事,现在 ui 进程不至于卡到暴了。启用的方式是,当然是打开about:config

browser.tabs.remote.autostart改为trueextensions.e10sBlockedByAddons改为false

前者启用多进程,后者当你安装了第三方应用的时候也强制启动多进程。

类型:LinuxApp,创建时间:八月 6, 2016, 2:18 p.m. 点击查看完整内容。。。
systemd 的时间控制命令

以前使用 date/hwclock 来调整时间,以及自己弄个 /etc/localtime 的软链接到真正的时区文件里面。现在不用折腾这个了。 systemd 提供了一条命令叫做 timedatectl 处理这些事情。。它接收几条子命令:

  • timedatectl status

    打印出当前的状态。

  • timedatectl set-time [TIME]

    修改当前时间

  • timedatectl set-timezone [TIMEZONE]

    修改当前时区

  • timedatectl list-timezones

    列出所有时区的名字。

  • timedatectl set-local-rtc [BOOL]

    设置硬件时钟是否使用本地时间。一般设置为 0 表示不使用本地时钟。

  • timedatectl set-ntp [BOOL]

    设置是否开启 ntp 同步。使用前需要先安装 ntp

这些命令在 openSUSE 和 CentOS7 下面都测试过可行。

类型:LinuxApp,创建时间:五月 3, 2016, 5:50 p.m. 点击查看完整内容。。。
监视redis服务器的数据变化

在某些情况下,我们往redis服务器里面存储了大量的数据。这么大量的数据,我们怎么样看到数据发生了哪些变化呢?新版本的redis提供了事件监听,可以把数据内所有的事件变化都打印出来。它的使用方法很简单。

  1. 首先打开发送数据事件。这个特性会额外消耗CPU,所以一般不要用。推荐使用命令行打开这个功能:

    $ redis-cli
    redis> config set notify-keyspace-events KA
    

    关于参数KA的作用,请见正文。

  2. 开始监听事件。redis-cli会把接下来的所有变化都打印出来。

    redis> psubscribe '__key*__:*'
    
  3. 想要结束了,按Ctrl+C就行。不过似乎也会把redis-cli也直接关掉。最好是重新运行一下redis-cli,然后禁用这个特性:

    redis > config set notify-keyspace-events ""
    
类型:LinuxApp,创建时间:一月 26, 2016, 5:38 p.m. 点击查看完整内容。。。
vmware/firefox 在 opensuse 13.2 里面会卡住的问题

最近经常发现 vmware/firefox 在切换页面的时候会卡住一会,导致整个系统没有响应。忘了怎么回事看到这个东西:http://neilstechdocs.blogspot.com/2013/09/fun-with-opensuse-vmware-and-firefox.html,只要禁用 transparent_hugepage 就可以解决问题了。办法是:

echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
echo never > /sys/kernel/mm/transparent_hugepage/defrag

不过我不知道要怎么样把这两条语句优雅地写入到系统启动脚本里面。所以我干脆在内核里面禁用了 transparent_hugepage,开启 yast 的引导加载器配置,在内核参数里面写上:

transparent_hugepage=never

重启搞定。

类型:LinuxApp,创建时间:三月 2, 2015, 12:12 a.m. 点击查看完整内容。。。
安装Trac

Trac是开源世界一个很流行的BUG管理系统。类似的系统还有BugZilla这样的东西。各自详细的特性我还没有做比较。有空再研究一下。

要搭建Trac的话,首先要安装Python。然后下载Trac的安装包,解压之后:

setup.py install

它会自动地下载genshi,所以,虽然INSTALL文件说明了要依赖于genshi这个包,实际上并不需要安装。

安装之后,首先类似于SVN或者MoinMoin那样,创建一个工程项。命令是:

C:\Python26\Scripts\trac-admin.exe testproj initenv

其中testproj是工程名字。

接下来还要创建用户名与密码。因为Trac使用Apache的htpasswd文件,所以必须使用Apache的工具来生成用户名与密码。或者用在线生成器Online password generation and encryption for .htpasswd files生成用户名和密码。密码必须使用SHA1(或者MD5?没有仔细看文档)。把生成的数据填入users.txt里面,每项一行。比如:

goldfish:{SHA}fEqNCco3Yq9h5ZUglD3CZJT4lBs=
panda:{SHA}fEqNCco3Yq9h5ZUglD3CZJT4lBs=

接下来还要给其中一个用户分配管理员权限,命令如下:

trac-admin testproj permission add goldfish TRAC_ADMIN

最后就是启动Web服务器了。Trac可以和各种服务器配合使用,支持mod_wsgi或者fastcgi。不过我这里用最简单的内置的tracd来启动。

tracd --port 8000 --basic-auth "*,users.txt,anything" testproj
类型:LinuxApp,创建时间:九月 9, 2014, 1:52 p.m. 点击查看完整内容。。。
在OpenSUSE和Ubuntu里面怎么配置一个smb服务器

微软的smb服务与nfs一样,真是一个很好的发明。它们都能够方便地让客户端直接访问文件内容,而不需要把文件内容传回客户端。

因为做服务器的时候我默认使用linux,所以接下来我打算安装一个Samba服务,实现简单的文件共享,要求必须输入密码才能连接到这个服务器。不提供默认用户的使用。其它的如WINS、NETBIOS服务这些东西都不需要,因为我们只需要一个类似于NFS这样的文件系统。

首先当然是安装samba服务。

zypper install samba

接下来修改一个samba服务器的配置文件,把目录共享出来。按照samba书上面的做法,可以有两种方案来提供服务,一是明确定义要共享的目录,并配置好它的路径、权限等信息。另一种做法是配置homes目录,把所有用户的目录都共享出来。我选择了后者。无他,刚好需要而已。

openSUSE果然是个尽职的女仆,安装完samba以后这件事情基本就搞定了。只要我们把goldfish这个系统已有的帐号加入到它的帐号数据库里面。

useradd -m goldfish #添加一个UNIX用户,如果有不用加了。
smbpasswd -a goldfish #添加相同名称的samba用户
systemctl restart smb #重启samba服务

至此,我们可以访问这个共享了。

smbclient --user goldfish //hostname/homes/

Ubuntu的配置稍微麻烦一些,请看正文。

类型:LinuxApp,创建时间:六月 19, 2014, 5:54 p.m. 点击查看完整内容。。。
在终端下面使用transmission下载bittorrent

本文简单介绍了如何安装、使用与配置bt下载软件。简而言之,

sudo zypper install transmission #安装
transmission pathtobt.torrent #开始下载一个bt文件
transmission-remote -a pathtobt2.torrent #同时下载第二个bt文件
类型:LinuxApp,创建时间:六月 19, 2014, 5:52 p.m. 点击查看完整内容。。。
在OpenSUSE上面安装nginx+php+mysql

今天在我的opensuse 13.1虚拟机上面安装nginx+php+mysql整了好久。碰到几个问题,纪录一下。

首先是安装必要的软件。

zypper install nginx php5 php5-fpm php5-mysql mysql-community-server

安装完还跑不起来。需要进行一系列的配置。

首先需要配置一下nginx,在/etc/nginx/nginx.conf里面写个配置:

location ~ \.php$ {
    root           /srv/www/htdocs/;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

这个配置最重要的部分是fastcgi_param SCRIPT_FILENAME,因为这个参数决定了真正执行的php文件的路径。如果直接使用nginx的默认配置会有问题。

那接下来就是配置php的fastcgi服务了。默认配置一样有问题,跑不起来,缺少配置文件。先复制一个配置文件过来:

cd /etc/php5/fpm
cp php-fpm.conf.default php-fpm.conf

然后修改/etc/php5/fpm/php-fpm.conf这个配置文件,把里面一行:

error_log = log/php-fpm.log

修改成为

error_log = /var/log/php-fpm.log

不然php-fpm服务就跑不起来了,会报日志文件错误。因为默认配置里面的/usr/var/log/这个目录是不存在的。

这两个东西配置好之后启动三个服务

systemctl enable mysql nginx php-fpm systemctl start mysql nginx php-fpm

类型:LinuxApp,创建时间:六月 19, 2014, 5:47 p.m. 点击查看完整内容。。。
怎么使用dd命令以及windows光盘映像创建一个可启动的U盘

windows的安装光盘映像本身是一个可以启动的光盘映像,理论上只要使用直接写入到u盘就可以启动了,就好像linux的live cd一样。不过windows不行,后来了解了一下,说是主板必须把这个U盘识别为USB-CDROM才行。大概是因为BIOS需要的引导纪录在windows光盘映像里面不存在。所以我们这里需要为u盘安装一个引导纪录。几个步骤,首先为U盘分区。然后创建启动纪录,再把ISO映像里面的文件复制到U盘。

# fdisk /dev/sdb
# mkfs.ntfs -f /dev/sdb1
# ms-sys /dev/sdb
# mount -o loop windows7.iso /mnt/iso
# mount /dev/sdb1 /mnt/usb
# cp -r /mnt/iso/* /mnt/usb/
类型:LinuxApp,创建时间:二月 25, 2014, 3:41 p.m. 点击查看完整内容。。。
在OpenSUSE 13.1 64位系统里面解压安装WPS

其实也没啥。如果不肯折腾的话,直接安装WPS提供的RPM包就行了。

使用压缩包的话,如果安装的是32位系统的话,直接下载回来就可以用。不过现在大家的电脑都不错,至少4G内存杠杠的,很多人会选择安装64位系统。这个时候需要安装一些依赖库。。

依赖库的名称我记在这里。

sudo zypper install libX11-6-32bit libgthread-2_0-0-32bit libpng12-0-32bit libfreetype6-32bit libgobject-2_0-0-32bit libSM6-32bit libXrender1-32bit fontconfig-32bit libXext6-32bit

貌似还缺一个libGLU,但是我发现如果安装这个东西会连wayland一起装,反正也不影响启动,只是缺少一个导出PDF的功能。所以就没有加到上面去了。之前发现WPS的RPM包依赖于wayland,比较奇怪才开始折腾这个。

装完WPS的依赖之后就下载压缩包,回来解压缩,运行里面的WPS搞定。

类型:LinuxApp,创建时间:十二月 2, 2013, 10:43 a.m. 点击查看完整内容。。。
在OpenSUSE下关闭笔记本的触摸板

很简单,在命令行下输入如下命令synclient TouchpadOff=1即可。

类型:LinuxApp,创建时间:十一月 29, 2013, 11:31 a.m. 点击查看完整内容。。。
介绍一下KDE/Qt程序的QtCurve皮肤

推荐KDE的程序皮肤(样式)QtCurve。它可以同时支持KDE3、KDE4和GNOME环境的皮肤,方便我们统一整个Linux桌面的外观。还支持非常多的细节调整,让我们每个人都可以有自己独特的外观。

因为它支持在Windows下编译,我在Besteam里面也应用了QtCurve。非常好用!

类型:LinuxApp,C++ & Qt4,创建时间:五月 7, 2012, 7:48 p.m. 点击查看完整内容。。。
使用非对称密钥登录SSH服务器

通常登录SSH服务器都使用用户名与密码。每次都输入用户名和密码比较麻烦,特别是有很多台机器的时候。Windows下的putty支持大多数的SSH认证方式,其中就包含了非对称密钥登录。步骤其实很简单,

  1. 使用puttygen.exe生成非对称密钥,将私钥保存起来,将公钥传输到远程主机上,假定保存到~/id_rsa.pub。然后用下面这台命令放到认证文件里:

    cat ~/id_rsa.pub >> ~/ssh/authorized_keys
    
  2. 运行putty.exe,首先载入Session

  3. 在putty配置对话框的Connection->Data页的Auto-login username里填上登录所使用用户名,比如root

  4. 在配置对话框的Connection->SSH->Atuh页的Private key file for authentication内添入私钥所在的路径。

  5. 保存Session。下次登录的时候就不需要输入用户名和密码了

类型:LinuxApp,创建时间:一月 1, 2012, 6:59 p.m. 点击查看完整内容。。。
debian6.0修改Grub2支持高分辨率console

以前配置grub1的方法是修改/etc/grub.conf,而grub2则是修改/etc/grub.d/里面的脚本。里面的脚本过于深奥,我稍微查看了一下,改分辨率的方法是修改/etc/default/grub的内容:

在GRUB_CMDLINE_LINUX里面增加内核参数:

GRUB_CMDLINE_LINUX="vga=792"

注意要注释掉:

# GRUB_TERMINAL=console

默认这一行是注释掉的,不然vga就没用了。

做完调用grub-mkconfig -o /boot/grub/grub.cfg刷新一下配置。

类型:LinuxApp,创建时间:一月 1, 2012, 6:53 p.m. 点击查看完整内容。。。
异端,去死吧(转载)

一个人走过海旁,看见另一个人想跳海自杀。

他走上前去劝说「先生,不要跳下去!」

那人问道:「为甚么?」

他说:「生命是美好的嘛!你是无神论者还是有宗教信仰?」

那人答:「我有宗教信仰。」

「佛教、道教、回教还是基督教?」

「基督教」

「罗马天主教还是新教?」

「新教」

「我也是新教呢!圣公会还是浸信会?」

「浸信会」

「太好啦!我也是浸信会,你是Baptist Church of God还是Baptist Church of the

Lord? 」

「Baptist Church of God. 」

「真是太奇妙啦!我也是,那你是原教旨的Baptist Church of God还是改革派的?」

「改革派的」

「1879年的改革派还是1915年的?」

「1915年的改革派。」

那人朝他屁股一脚把他踢进海里:「异端!去死吧!」

类型:LinuxApp,随感,创建时间:一月 1, 2012, 4:36 p.m. 点击查看完整内容。。。
小技巧:让Win键在KDE中更有用(转载)

http://blog.gmsh.pp.ru/2009/08/tips-make-win-key-useful-in-kde/

从 Windows迁移到 Linux 上的用户,可能保持着按 WindowsKey(Windows键,标准键盘最下一行的那个视窗键)打开Windows开始菜单的习惯。但是在 某些 Linux 发行版上(比如笔者的openSUSE 11.1,KDE 4.3环境)上 WindowsKey 并没有绑定到 KickOff 菜单上。可以尝试在 KDE 控制中心 (KDE control panel)里面修改,而 KDE 的快捷键只允许非修饰键(Modifier Key)和 组合键,WindowsKey 恰恰是修饰键,直接绑定 WindowsKey 是不可行的。下面,笔者介绍一个技巧,使 WindowsKey 绑定到 KDE 4.3 的 KickOff 菜单上。这里用了更改键盘映射的方法。

详细过程请点击查看正文。

类型:LinuxApp,创建时间:一月 1, 2012, 8:45 p.m. 点击查看完整内容。。。
Linux下如何挂载一个ISO文件

挂载一个iso文件的方法:

mount /root/CentOS.iso /mnt/centos -t iso9660 -o loop=/dev/loop1

其中/root/CentOS.iso是iso文件的路径。/mnt/centos是挂载到的目录。-t iso9660指明了ISO文件的文件系统格式。-o loop=/dev/loop1指明了使用哪个loopback文件。如果/dev/loop1已经被使用了,可以使用其它的loopback文件,/dev/loop2这样子。

类型:LinuxApp,创建时间:一月 1, 2012, 12:22 p.m. 点击查看完整内容。。。
几个KDE4使用技巧
  1. 如果觉得KDE太难看了,然后你的英语水平还行的话,试试把语言改成英文。方法是在系统配置(system settings)里修改"地区与语言(Regional & Language)"。加US English语言,地区则保持为China。我还设了Bitstream字体,觉得显示好看多了。

  2. 很多朋友不习惯KDE默认的单击行为。我记得以前WIN98也可以改成单击,结果是没什么人用。这个也可以在系统配置里修改。找到"键盘与鼠标(Keyboard & Mouse)",鼠标配置可以修改。

  3. 拜KIO组件所赐,在Konqueror可以查看各种命令的说明文件。不信,试试在Konqueror里输入man:ls就可以看到ls命令的使用说明了。格式很简单,man:后面加上命令名。实际上由于KDE4引入了KIO,大多数KDE4组件都可以 如同硬盘文件一样对待FTP、SFTP、HTTP上的文件。

  4. ssh是Linux下面提供远程终端的工具,在windows使用putty或者SecureCRT之类的终端软件可以连接到Linux进行操作。ssh还提供了sftp协议,在windows下可以使用filezilla或者winscp等工具访问linux的文件系统。使用方法跟ftp一模一样。KDE4的dolphin和konqueror已经内置了对sftp的支持,只要在地址里输入sftp://romotehostip就可以访问sftp了。

  5. 使用konqueror的时候,很多中国人很讨厌使用ctrl+space打开输入法的时候konqueror显示出一堆狗皮膏药。konqueror称它们为"access key",按ctrl键之后显示出来,用户只要再按一下对应的按键,就可以跳到对应的链接去了。在KDE4.2之前,去掉这个功能得修改配置文件,现在不用,在konqueror的配置对应框里找到"网页浏览(Web Browsing)",最后一个选项"启用Access Key"一项去掉即可。

类型:LinuxApp,创建时间:一月 1, 2012, 12:19 p.m. 点击查看完整内容。。。
在Linux安装配置unixODBC

ODBC(Open Database Connectivity,开放数据库互连)提供了一种标准的API(应用程序编程接口)方法来访问DBMS(Database Management System)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。ODBC的设计者们努力使它具有最大的独立性和开放性:与具体的编程语言无关,与具体的数据库系统无关,与具体的操作系统无关。微软公司在1993年以DLL集的方式发布了世界上第一个ODBC产品,现在成为了微软开放服务结构(WOSA,Windows Open Services Architecture)中,有关数据库的一个组成部分。微软的ODBC产品其实就是一个ODBC的驱动管理器,提供一个ODBC应用程序到某种ODBC驱动的接口。在UNIX系统上,有两个开源的ODBC驱动管理器,unixODBC和iODBC。

在Linux下,ODBC可以让一个软件本身不必花费太多的精力而支持多种数据库系统。开源的SIP服务器Asterisk就是这样一个例子。本文就是配置Asterisk服务器的产物,纪录了我将一个MySQL数据库配置为ODBC数据源的详细过程。

类型:LinuxApp,创建时间:一月 1, 2012, 12:16 p.m. 点击查看完整内容。。。
为什么使用SecureCRT或者putty通过ssh登录Linux主机很慢呢

相信很多使用Linux的朋友都会在Windows下使用putty之类的工具登录Linux主机。大家有没有发现,输入密码之后还要过很久才会显示命令提示符。这是不是因为Linux的服务器太糟糕性能太低才会这样呢?其实这是因为OpenSSH在用户登录的时候验证IP。OpenSSH会根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果你的网络里没有DNS服务器,或者你的主机名是随便捏造的,花的时间就比较多。

安全和方便有时候两个不得不选一个。我比较希望OpenSSH帮我把等待的时候省起来。方法是修改/etc/ssh/sshd_config文件,添加(或者修改)一行:

UseDNS no

重启一下sshd服务器就可以解决了。

service ssh restart
类型:LinuxApp,创建时间:十二月 31, 2011, 5:39 p.m. 点击查看完整内容。。。