fedora 18 安装配置

安装fastestmirror:

个人不推荐更改repo文件,因为有单点依赖

yum install yum-plugin-fastestmirror

安装rpmfusion源:

RPM Fusion is a merger of Dribble, Freshrpms, and Livna.

yum localinstall --nogpgcheck http://mirrors.163.com/rpmfusion/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://mirrors.163.com/rpmfusion/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

字体:

yum install wqy-bitmap-fonts wqy-zenhei-fonts wqy-unibit-fonts wqy-microhei-fonts
yum install cjkuni-uming-fonts cjkuni-ukai-fonts

gedit乱码:

gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'BIG5', 'UTF-8', 'CURRENT', 'UTF-16']"
gsettings set org.gnome.gedit.preferences.encodings shown-in-menu "['GB18030', 'BIG5', 'ISO-8859-15']"

#复原
#gsettings set org.gnome.gedit.preferences.encodings auto-detected “[‘UTF-8’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]”
#gsettings set org.gnome.gedit.preferences.encodings shown-in-menu “[‘GB18030’, ‘ISO-8859-15’]”

输入法:

当然,得另外配置一下才可以哦

yum install fcitx-gtk3 fcitx-libpinyin fcitx-cloudpinyin fcitx-configtool

办公软件:

Libre office 是一个非常优秀的办公软件。

yum install libreoffice-base libreoffice-calc libreoffice-math libreoffice-writer libreoffice-ogltrans libreoffice-wiki-publisher libreoffice-draw

Adobe Flash Plugin:

可以自动更新。

yum localinstall --nogpgcheck http://linuxdownload.adobe.com/adobe-release/adobe-release-x86_64-1.0-1.noarch.rpm
yum install flash-plugin

多媒体/解码器:

yum install ffmpeg ffmpeg-libs gstreamer-ffmpeg xvidcore libdvdread libdvdnav lsdvd gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly

FileZilla:

非常优秀的开源ftp客户端

yum install filezilla

图形相关:

yum install gimp blender

远程桌面:

yum install rdesktop spice-client
sudo yum install remmina remmina-plugins-rdp remmina-plugins-gnome remmina-plugins-vnc

系统工具:

yum install system-storage-manager systemd-ui gparted

小工具/插件:

包括字体查看器、nautilus插件、gonme插件、gedit插件。

yum install gnome-font-viewer nautilus-open-terminal gnome-shell-extension-alternative-status-menu gnome-exe-thumbnailer
yum install gedit-plugins gedit-beesu-plugin gnome-nettool

常用工具:

yum install wget patch unrar axel

开发工具:

yum install git-svn git
yum install gcc gcc-c++ gdb autoconf automake java-1.7.0-openjdk java-1.7.0-openjdk-devel indent

web/ftp 服务器:

yum install httpd mysql mysql-server php php-mysql
yum install proftpd

虚拟化:

yum group install virtualization

用reveal.js+markdown制作树型结构的slides

reveal.js 可以让你制作出基于网页的slides,轻量级,跨平台,非私有格式。

说来惭愧,我做的大多slides都是想表达这样的结构:

image1

于是,就做出了这样的slides:

image2

我们姑且称这样的slides为“树型结构slides”。我们要用 reveal.js来制作这样的 slides 。

fork项目:

git clone git://github.com/hakimel/reveal.js.git

然后修改index.html文件,把class为slides的div元素换为如下div元素(覆盖掉原来的div元素及其子孙元素)

<div class="slides">
  <section data-markdown data-separator="^\n\n\n" data-vertical="^\n\n">
    <script type="text/template">
      <!-- [markdown 内容] -->
    </script>
  </section>
</div>

data-separator=”^\n\n\n”表示用三个连续的换行作为横向分隔符(即顶层slide之间的分隔),data-vertical=”^\n\n”表示用两个个连续的换行作为纵向分隔符(即第二层slide之间的分隔)。

举例如下:

<div class="slides">
  <section data-markdown data-separator="= = =" data-vertical="- - -">
    <script type="text/template">
      #start slide
      = = =
      #slide 1
      - - -
      #slide 1.1
      - - -
      #slide 1.2
      = = =
      #slide 2
      - - -
      #slide 2.1
      - - -
      #slide 2.2
      = = =
      #end slide
    </script>
  </section>
</div>

使用方法:首先展示开始页,按右或者回车显示下一页,按左显示上一页,按上下显示相应页面子页面。Esc显示概览。

如图:

image3

不足:

需要slides作者有html/css基础。

加载时需要下载网页字体(这个可以先用离线模式解决,日后联系开发者解决)

只适用于“扁平”状的slides,如果层数太多,展示效果不好。

建立xdebug+eclipse的调试环境

几周了,终于让 eclipse 能够调试php代码了,期间找了许多资料,但是总不能如愿,于是记录如下。

安装xdebug

fedora 下直接安装 php-pecl-xdebug 包就算是配置好了 php 的 xdebug 扩展。

记得systemctl reload httpd.service

访问 phpinfo 页面时应该有 xdebug 的相关信息:

Screenshot from 2013-04-03 16:01:51

然后打开 display_errors ,即 php.ini 里面有 display_errors= On ,那么打开一个有异常的页面会出现彩色提示。Screenshot from 2013-04-03 15:51:52

配置远程调试

这时可以配置远程调试。在 /etc/php.d/xdebug.ini 中写入如下几行:

[Xdebug]
xdebug.remote_autostart=On
xdebug.remote_enable=On
xdebug.remote_host=127.0.0.1
xdebug.remote_handler=dbgp

然后systemctl reload httpd.service ,在 phpinfo 页面确认上述参数已经生效。

然后用 debugclient 来测试xdebug是否正常工作。

运行 debugclient ,显示等待连接:

Screenshot from 2013-04-03 16:10:25

然后访问一个会产生异常的页面,debugclient 会得到连接:

Screenshot from 2013-04-03 17:06:43

配置eclipse

eclipse安装好相关的插件(PDT),创建项目,把项目目录配置为虚拟主机,然后设置项目的调试器。

有待完善啊。。

Linux 下 Eclipse 的外观修改(图标大小)

在Linux(F18+gnome3)下用Eclipse最显著的一个特点是图标特别的“大气”,菜单栏都到两行了,就是图标特别的大。给张图就明白了:

before

今天突然有改了它的冲动,百度之,曰为gtk2的风格问题。不过,百度出来的答案都没用,于是google,得之:https://www.davidandrzejewski.com/2012/08/03/make-eclipse-less-ugly- in-linux-mint/

文中的配置有一点不妥,引用如下:

style "compact"
{
GtkButton::default_border={0,0,0,0}
GtkButton::default_outside_border={0,0,0,0}
GtkButtonBox::child_min_width=0
GtkButtonBox::child_min_heigth=0
GtkButtonBox::child_internal_pad_x=0
GtkButtonBox::child_internal_pad_y=0
GtkMenu::vertical-padding=1
GtkMenuBar::internal_padding=1
GtkMenuItem::horizontal_padding=4
GtkToolbar::internal-padding=1
GtkToolbar::space-size=1
GtkOptionMenu::indicator_size=0
GtkOptionMenu::indicator_spacing=0
GtkPaned::handle_size=4
GtkRange::trough_border=0
GtkRange::stepper_spacing=0
GtkScale::value_spacing=0
GtkScrolledWindow::scrollbar_spacing=0
GtkExpander::expander_size=10
GtkExpander::expander_spacing=0
GtkTreeView::vertical-separator=0
GtkTreeView::horizontal-separator=0
GtkTreeView::expander-size=12
GtkTreeView::fixed-height-mode=TRUE
GtkWidget::focus_padding=0
font_name="Liberation Sans,Sans Regular 8"
text[SELECTED] = @selected_text_color
}
class "GtkWidget" style "compact"
style "compact2"
{
xthickness=1
ythickness=1
}

class "GtkButton" style "compact2"
class "GtkToolbar" style "compact2"
class "GtkPaned" style "compact2"

第30行使tweak丧失了对程序字体的控制权,有越俎代庖之嫌,删去。

第5行个人觉得边框太小,故改为1 。

最终解决方案:

在~/gtkrc-2.0文件中添加如下语句:

style "compact"
{
  GtkButton::default_border={1,1,1,1}
  GtkButton::default_outside_border={0,0,0,0}
  GtkButtonBox::child_min_width=0
  GtkButtonBox::child_min_heigth=0
  GtkButtonBox::child_internal_pad_x=0
  GtkButtonBox::child_internal_pad_y=0
  GtkMenu::vertical-padding=1
  GtkMenuBar::internal_padding=1
  GtkMenuItem::horizontal_padding=4
  GtkToolbar::internal-padding=1
  GtkToolbar::space-size=1
  GtkOptionMenu::indicator_size=0
  GtkOptionMenu::indicator_spacing=0
  GtkPaned::handle_size=4
  GtkRange::trough_border=0
  GtkRange::stepper_spacing=0
  GtkScale::value_spacing=0
  GtkScrolledWindow::scrollbar_spacing=0
  GtkExpander::expander_size=10
  GtkExpander::expander_spacing=0
  GtkTreeView::vertical-separator=0
  GtkTreeView::horizontal-separator=0
  GtkTreeView::expander-size=12
  GtkTreeView::fixed-height-mode=TRUE
  GtkWidget::focus_padding=0
}
class "GtkWidget" style "compact"
style "compact2"
{
  xthickness=1
  ythickness=1
}
class "GtkButton" style "compact2"
class "GtkToolbar" style "compact2"
class "GtkPaned" style "compact2"

效果:

after

注意:此法可能对其他使用gtk2的程序产生影响。

ProFTPD限制FTP模式

以前搞过ProFTPD禁止主动模式,但是这两天有这个需求的时候却忘记了,看来得写一日志记录下。

首先,环境是 fedora 17 + proftp 。

默认的配置是主动模式和被动模式都可用。

主动模式下访问记录:

Command:    PORT 127,0,0,1,237,87
Response:    200 PORT command successful

被动模式访问记录:

Command:    PASV
Response:    227 Entering Passive Mode (127,0,0,1,157,107).

如果需要禁止主动模式访问,则只需要在/etc/proftd.conf的<Global>段中添加如下三行:

<Limit PORT>
DenyAll
</Limit>

即禁止PORT指令,则主动模式访问记录变为:

Command:    PORT 127,0,0,1,199,3
Response:    501 PORT: Operation not permitted

如果需要禁止被动模式访问,则只需要在/etc/proftd.conf的<Global>段中添加如下三行:

<Limit PASV>
DenyAll
</Limit>

即禁止PASV指令,则被动模式访问记录变为:

Command:    PASV
Response:    501 PASV: Operation not permitted

东华大学 WiFi 的认证流程

登陆

首先,我们连接上DHU的时候,http请求(甚至是https请求)都会返回302
Location:http://www3.dhu.edu.cn/wireless/dhu-login_page.htm?cmd=login& amp;mac=ec:55:f9:6c:54:15&ip=10.200.3.32&essid=DHU&url=http%3A%2F%2Fbaidu%2Ecom%2F

若是https请求,则会出错(ERROR: certificate common name `securelogin.arubanetworks.com’ doesn’t match requested host name `xxxx’.)

http请求则能正常打开页面。

现在转到http://www3.dhu.edu.cn/wireless/dhu-login_page.htm

首先,在此页面,验证码的比对是由javascript完成的,若验证码不符,则不会提交表单。

若验证码通过,则此页面向https://securelogin.arubanetworks.com/auth/index.html/u提交表单(post方式),各参数如下:
[%%MAGICID%%] => %%MAGICVAL%%
[user] => 学号
[password] => 密码
[text] => 验证码
[text2] => 验证码
[%%REDIRID%%] => %%PROTURI%%
通过我后来的实验可知,只提交user和password也可通过认证。

若之前没有登陆,且用户名密码匹配,则返回如下:
POST https://securelogin.arubanetworks.com/auth/index.html/u [HTTP/1.1 200 OK 331ms]
若用户名密码不匹配,返回如下:
POST https://securelogin.arubanetworks.com/auth/index.html/u [HTTP/1.1 302 Temporarily Moved 342ms]
Location: http://www3.dhu.edu.cn/wireless/dhu-login_page.htm?errmsg=Authentication failed
若之前登陆成功,不论你用户名密码是否匹配,都返回:
POST https://securelogin.arubanetworks.com/auth/index.html/u [HTTP/1.1 302 Temporarily Moved 101ms]
Location:?errmsg=Access denied
然后就一直:
GET https://securelogin.arubanetworks.com/auth/index.html/u?errmsg=Access%20denied [HTTP/1.1 302 Temporarily Moved 37ms]
Location:?errmsg=Access denied

退出

至于退出,则是向https://securelogin.arubanetworks.com/auth/logout.html POST 如下数据
[button] => ע�� (gb2312编码的“按钮”两字)
当然,只是 GET https://securelogin.arubanetworks.com/auth/logout.html 也可退出。

Linux下管理MP3文件(乱码,临时文件)

很多MP3文件在Linux的播放器中都显示乱码,原理在此:http://www.linuxdiyf.com/viewarticle.php?id=57099

另外,Linux下有的音乐播放器会在目录下创建隐藏文件,备份时当然要删除这些文件了。
1.删除目录下除MP3和LRC文件以外的其他文件:

find ./ -type f ! -iname \*.mp3 ! -iname  \*.lrc -exec rm -v \{\} \;

2.删除空目录:

find ./ -type d -empty -delete

注意:此处不能用 -exec rm ,因为删除目录时find命令仍然在这个目录,会报错。

3.修复MP3文件的标签:

find ./ -type f -iname \*.mp3 -exec mid3iconv -e gbk \{\} --remove-v1 \;

注:经测试 mid3iconv -e gbk X.mp3 –remove-v1 不会改变原来正常MP3文件的编码。

如何预览翻译的 Fedora 文档(使用 Publican)

首先要在 transifex.com 网站注册,并加入翻译组。(此处不赘述)

 

fedora的文档,至少本文的例子 Fedora System Administrator’s Guide → FTP 使用 Publican 写作,所以我们从翻译网站上拿到的仅仅是包括了文章“词条”的po文件。我们翻译的时候肯定要“预览”,所以必须拿到文档源码,本文中的文档源码在 git://git.fedorahosted.org/docs/system-administrators-guide.git 。

 

首先,获取文档源码:

    git clone git://git.fedorahosted.org/docs/system-administrators-guide.git

切换到目录:

    cd system-administrators-guide

测试生成文档:

    make

提示:/bin/sh: publican: command not found

那就安装此工具:

    yum install publican-doc publican-fedora

再次测试生成文档:

    make

这次没有提示错误,在 ./tmp/en-US/html-desktop/ 下生成了html版本的文档,打开 ./tmp/en-US/html-desktop/index.html ,如图:

1

当然,你也可以生成pdf格式的文档:

    make pdf

打开 ./tmp/en-US/pdf/Fedora-17-System_Administrators_Guide-en-US.pdf :

2

默认生成的文档是英文的,那如何生成其他语言的文档呢?

 

首先,生成pot文件,即翻译的模板文件:

    publican update_pot

这时可以看到当前目录下多了一个 pot 文件夹,里面全部是 pot 文件。

但我们仍需要创建中文的翻译文件:

    publican update_po --langs=zh-CN

这时,当前目录下多了一个文件夹 zh-CN ,里面全部是po文件,我们的翻译工作就是翻译这些po文件。不过不要着急,我们需要从 transifex.com 把最新的po文件拉取过来,并替换zh-CN文件夹内的相应po文件。

以章节 16.2. FTP 为例,下载下来的文件是 for_use_system-administrators-guide_FTP_zh_CN.po ,替换zh-CN文件夹内的FTP.po文件。

然后生成中文的HTML文档:

    make LANGUAGE=zh-CN

如图:

3

或者生成pdf格式的:

    make pdf LANGUAGE=zh-CN

如图:

4

 

参考资料:

https://fedoraproject.org/wiki/Publican

https://fedorahosted.org/Publican

http://jfearn.fedorapeople.org/en-US/Publican/2.7/html/Users_Guide/index.html