Home » Slackware » Slackware 14 安装后常规设置
  • 24
  • 10月

Slackware 是一个古老的 Linux 发行版.

本文主要讲在安装 Slackware 系统之后,如何进行配置,使得其更符合我们的使用习惯。

注解

系统版本要求: Slackware 14+.

1   语言设置

1.1   设置语系

刚刚安装好的系统默认语言是英文, 需要修改为英文 UTF-8 或者 中文 UTF-8.

编辑 /etc/profile.d/lang.sh, 添加下面几行:

export LANG=en_US.UTF-8
export LC_CTYPE=zh_CN.UTF-8

1.2   日期时间格式

系统设置 -> 语系 -> 国家/地区和语言 -> 日期和时间.

2   显示设置

系统默认情况下只有开源的显卡驱动, 若电脑带有独立显示或者显卡有更好的驱动, 建议单独安装更好的驱动.

3   用户管理

因为 root 用户权限太大, 一般会创建一个普通用户作为日常使用. 使用 adduser 命令来添加普通用户:

adduser <username>

到设置群组的步骤时,按向上方向键选择常用群组。

常用的群组:

users lp floppy audio video cdrom plugdev power netdev scanner

或者用命令操作:

/usr/sbin/usermod -a -G users,lp,floppy,audio,video,cdrom,plugdev,power,netdev,scanner <username>

将一个用户添加到用户组中,千万不能直接用:

usermod -G groupA

这样做会使你离开其他用户组,仅仅做为这个用户组 groupA 的成员。

应该用 加上 -a 选项:

usermod -a -G groupA <username>

-a 代表 append, 也就是将自己添加到用户组 groupA 中,而不必离开其他用户组。

执行 /usr/sbin/visudo, 找到这行,去掉注释(把前面的 # 去掉):

%wheel ALL=(ALL) ALL

把新用户增加到 wheel 组:

/usr/sbin/groupmems -g wheel -a <username>

3.1   Polkit 配置

普通用户在使用 Dolphin 挂载其他分区时, 会提示输入 root 用户密码, 但为了安全起见, root 密码是不能随意告诉别人的. 所以设置 wheel 组的用户可以挂载分区.

旧版(14.1, polkit-0.105):

cat > /etc/polkit-1/localauthority.conf.d/60-localauthority.conf << EOF
[Configuration]
AdminIdentities=unix-group:wheel
EOF

注解

配置文件前面的数字越大, 优先级越高.

新版(14.2, polkit-0.113):

cat > /etc/polkit-1/rules.d/40-default.rules << EOF
polkit.addAdminRule(function(action, subject) {
    return ["unix-group:wheel"];
});
EOF

注解

配置文件前面的数字越小, 优先级越高.

4   网络配置

执行 netconfig 配置基本网络环境.

Slackware 14.0 之后,可以使用 NetworkManager 来管理有线网络和无线网络,很方便。

NetworkManager 自动启动:

chmod +x /etc/rc.d/rc.networkmanager

5   中文输入法

系统自带的输入法是 SCIM 输入法, 只是这个输入法太久没有更新了, 安装时一般不安装. 若已安装了, 需要提前卸载.

注解

因为谷歌被屏蔽, 所以源码包无法正常下载, 可以从官方网站下载.

5.1   Fcitx 中文输入法

Fcitx 是 (Free Chinese Input Toy for X) 的英文缩写,中文名为小企鹅输入法, 是一个以 GPL 方式发布的输入法框架, 编写它的目是为桌面环境提供一个灵活的输入方案, 彻底解决在GNU/Linux下没有一个好的中文输入法的问题。

Fcitx 通过 SBo 安装:

几个相关的环境变量, 确保输入法可以正常运行:

# export some environ vars for fcitx
export XMODIFIERS="@im=fcitx"
export XIM="fcitx"
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="xim"

技巧

环境变量可以添加到 /etc/profile.d/lang.sh. 若是通过上述方法安装, 则已经声明好了, 只要在安装之后注销再登录即可.

注解

若要让 fcitx 在开机时启动, 可以把 fcitx 添加到 KDE 自动启动. (系统设置 -> 开机和关机 -> 自动启动)

5.2   kcm-fcitx 图形化配置工具

kcm-fcitx 是 Fcitx 在 KDE 环境下的图形化配置工具. 建议安装, 方便配置输入法.

kcm-fcitx 通过 SBo 安装:

5.3   Fcitx-Vim

Fcitx 和 Vim 配合时, 需要安装 fcitx.vim 插件, 用于当 Vim 进入命令模式时, 自动切换 fcitx 为英文输入法, 而进入编辑模式时, 自动切换回原先的输入法.

插件网站: https://github.com/vim-scripts/fcitx.vim

警告

/tmp/fcitx-socket-:0 拥有者必须为当前用户(而不是 root), 否则插件无法正常运行.

7   系统美化

7.1   BASH SHELL 提示符

Bash 配置文件 ~/.bashrc:

export PS1="\\[\\033[1;31m\\]\\u\\[\\033[0;30m\\]@\\[\\033[1;34m\\]\\h\\[\\033[0;32m\\]<\t>:\\[\\033[1;34m\\]\\w\\[\\033[1;31m\\]\\\$\\[\\033[0m\\] "
alias ls="ls --color"

7.2   XTerm 美化

XTerm 配置文件 ~/.Xresources:

Xft.dpi:96
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.antialias: 1
Xft.rgba: rgb

xpdf.title: PDF
XTerm*locale: true
XTerm*utf8Title: true
XTerm*fontMenu*fontdefault*Label: Default
XTerm*faceName: Luxi Mono
XTerm*faceNameDoublesize: WenQuanYi Zen Hei
XTerm*faceSize: 11
XTerm*faceSize1: 11
XTerm*faceSize2: 11
XTerm*faceSize3: 11
XTerm*faceSize4: 11
XTerm*faceSize5: 11
XTerm*faceSize6: 11
XTerm.cjkWidth:true
XTerm*background: #e2e2e2
XTerm*foreground: black
XTerm*scrollBar: true
XTerm*rightScrollBar: true
XTerm*jumpScroll:  true
XTerm*SaveLines: 1000

!mouse selecting to copy, ctrl-v to paste
!Ctrl p to print screen content to file
xterm*VT100.Translations: #override \
Ctrl <KeyPress> V: insert-selection(CLIPBOARD,PRIMARY,CUT_BUFFER0) \n\
<BtnUp>: select-end(CLIPBOARD,PRIMARY,CUT_BUFFER0) \n\
Ctrl <KeyPress> P: print() \n

7.3   字体美化

系统自带了文泉驿正黑字体, 0.8.38 (盘古) 之后的版本都内置点阵宋体 (9-12px).

要开启或关闭点阵宋体,可通过 /usr/sbin/zenheiset 来设置:

  • zenheiset aa: 禁用所有点阵效果
  • zenheiset bitmap: 为 13px 以下的字形开启点阵
  • zenheiset bitmapfull: 开启所有大小的点阵效果

技巧

若启用 hinting, 最好是把点阵关掉, 因为那只对矢量字体有效. 使用点阵的话, 有可能会出现标题栏阴影错乱的问题.

设置好中文点阵之后, 需要对中英文字体进行优化, 以达到更好的显示效果.

Slackware 14.1 推荐的 FontConfig 配置文件路径为 ~/.config/fontconfig/fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <!-- created by WenQuanYi FcDesigner v0.5 -->
 <match>
  <test name="family">
   <string>sans-serif</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>DejaVu Sans</string>
   <!-- Please install DejaVu Sans first -->
   <string>Droid Sans</string>
   <string>WenQuanYi Bitmap Song</string>
   <string>Liberation Sans</string>
   <string>WenQuanYi Micro Hei</string>
   <string>WenQuanYi Zen Hei</string>
  </edit>
 </match>
 <match>
  <test name="family">
   <string>serif</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>DejaVu Serif</string>
   <string>Droid Serif</string>
   <!-- Please install Droid Serif first -->
   <string>WenQuanYi Bitmap Song</string>
   <string>WenQuanYi Zen Hei Sharp</string>
   <string>AR PL UMing CN</string>
   <!-- Please install AR PL UMing CN first -->
   <string>Bitstream Charter</string>
   <string>Liberation Serif</string>
   <string>AR PL SungtiL GB</string>
   <!-- Please install AR PL SungtiL GB first -->
   <string>AR PL UMing TW</string>
   <!-- Please install AR PL UMing TW first -->
  </edit>
 </match>
 <match>
  <test name="family">
   <string>monospace</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>DejaVu Sans Mono</string>
   <string>Droid Sans Mono</string>
   <!-- Please install Droid Sans Mono first -->
   <string>WenQuanYi Bitmap Song</string>
   <string>WenQuanYi Zen Hei Sharp</string>
   <string>WenQuanYi Micro Hei Mono</string>
   <!-- Please install WenQuanYi Micro Hei Mono first -->
   <string>WenQuanYi Zen Hei Mono</string>
   <string>Liberation Sans Mono</string>
   <!-- Please install Liberation Sans Mono first -->
   <string>AR PL UMing TW</string>
   <!-- Please install AR PL UMing TW first -->
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="lcdfilter">
   <const>lcddefault</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="autohint">
   <bool>false</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle">
   <const>hintslight</const>
  </edit>
 </match>
 <!-- 下面这个 match 只有当 autohint 为 true 时有效 -->
 <match target="font">
  <test compare="more" name="weight">
   <const>medium</const>
  </test>
  <edit name="autohint" mode="assign">
   <bool>false</bool>
  </edit>
 </match>
</fontconfig>

7.4   QtCurve-Gtk2 窗口样式美化

我使用 KDE 4.10 桌面环境。

这是 KDE4 下 GTK2 的美化主题包。

网站: http://slackbuilds.org/repository/14.1/desktop/QtCurve-Gtk2/

安装完毕之后,可在 ~/.gtkrc-2.0 文件内添加一行:

gtk-theme-name="QtCurve"

当然,如果懒的话可以通过安装 lxappearance 来设置, SBo 上也可以找得到的。

8   Python

8.1   Pip

Pip 是一个使用很广泛的 Python 软件包管理工具.

网站: https://pip.pypa.io/

配置文件:

  • Linux: $HOME/.pip/pip.conf
  • Windows: %HOME%\pip\pip.ini

使用国内源(比如, 豆瓣):

[global]
index-url=http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com

wheel 本质上是一个 zip 包格式, 它使用 .whl 扩展名, 用于 python 模块的安装, 它的出现是为了替代 Eggs.

pip 提供了一个 wheel 子命令来安装 wheel 包. 当然, 需要先安装 wheel 模块.

不同的 wheel 包可能需要使用不同的命令安装, 例如:

  • MySQL-python 的 wheel 包使用 wheel 命令安装
  • Numpy 的 wheel 包使用 pip 命令安装

8.2   Virtualenv

Virtualenv 用来建立一个虚拟的 Python 环境, 一个专属于项目的 Python 环境.

Virtualenv 使用 Pip 来管理软件包.

安装:

pip install virtualenv

8.3   Flake8

Flake8 是 Python 语法和规范检查工具, 是下面 3 个组件的集合:

  • PyFlakes
  • Pep8
  • Ned Batchelder's McCabe script

安装:

pip install flake8

技巧

autopep8 是 Pep8 自动修正工具, 可以完成大部分 Pep8 修正工作. 可以使用 pip 安装.

警告

pep8 建议安装 1.5.7 版本, 1.6 系列是不建议安装的, 而 1.7 系列和 1.6 系列情况类似, 会导致项目内的 .flake8 失效. (若存在用户的 .flake8 文件)

8.4   Spyder IDE

Spyder 是 Python(x,y) 的作者为它开发的一个简单的集成开发环境. 和其他的 Python 开发环境相比, 它最大的优点就是模仿 MATLAB 的工作空间的功能, 可以很方便地观察和修改数组的值。

可通过 SBo 安装:

http://slackbuilds.org/repository/14.1/development/spyder/

9   Mercurial

9.1   升级

若 Mercurial 版本比较低, 可以选择升级到较新的版本.

9.2   TortoiseHg

TortoiseHg 是一个强大的 Mercurial 图形化客户端.

注解

TortoiseHg 的版本不能高于 Mercurial 的版本. 比如 Mercurial 2.7.2 只能安装 TortoiseHg 2.9.2 .

9.3   Keyring

Keyring 是 Linux 下的密钥保存服务. 在 KDE 桌面环境下, 和 KDE 钱包系统配合使用.

pip install keyring mercurial_keyring

10   邮件收发

参考文档:

10.1   fetchmail

~/.fetchmailrc:

set deamon 600 # second
poll pop.xxx.xxx protocol pop3 uidl user "xxx" password "xxxxx"

10.2   procmail

过滤邮件,可以使用默认配置,若有特殊需要可自定义配置。

10.3   Mutt

快捷键

k 指向上一条邮件
j 指向下一条邮件
z 下一页邮件
Z 上一页邮件
* 第一条邮件
= 最后一条邮件

批量标记执行动作在邮件列表界面对需要标记的邮件摁 t 打上标记, 然后摁 ;d 删除, 再摁 $ 执行删除动作. 如果是 T 则输入需要打标记的匹配邮件的规则, 比如对邮件标题中含有 Newsletter 的邮件打上标记删除则是摁 T 然后输入 ~h Newsletter, 然后在摁 ;d, 最后执行动作按 $.

配置文件 ~/.muttrc:

# source ~/.mutt/gpg.rc
set copy=yes
set record="$HOME/Mail/sent"
set rfc2047_parameters=yes
set assumed_charset="gbk:utf-8"
charset-hook ^gb2312$ gbk

# 使用G键运行 fetchmail
macro index G "!fetchmail -k -m 'procmail -d %T'\r"
macro pager G "!fetchmail -k -m 'procmail -d %T'\r"

set fast_reply=yes
set include # 回信时是否包含原文
set sendmail="/usr/bin/msmtp"
set envelope_from=yes
set from="digwtx@163.com"
set realname="digwtx"

auto_view text/html

score "~N" +4
score "~f wtx358@qq.com" +2
score "~D" -5
score "~O" +1

# set sort=reverse-date
set sort=score
# set sort_aux=reverse-date
set sort_aux=date

#mutt显示日期为中文
set locale="zh_CN.utf-8"

#如果翻到最后,再按往下翻也不会翻到下一封信件
set pager_stop
set quit=ask-yes

set pager_index_lines=4

# 每行设置一项,两个颜色分别是前景色和背景色
color normal     white        black
color attachment brightyellow black
color hdrdefault cyan         black
color indicator  black        cyan
color markers    brightred    black
color quoted     green        black
color signature  cyan         black
color status     brightgreen  blue
color tilde      blue         black
color tree       red          black
color header     brightgreen  black ^From:
color header     brightcyan   black ^To:
color header     brightcyan   black ^Reply-To:
color header     brightcyan   black ^Cc:
color header     brightgreen  black ^Subject:
color body       brightred    black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+
color body       brightblue   black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+
color index      brightyellow black ~N
color normal     white        black
color attachment brightyellow black
color hdrdefault cyan         black
color indicator  black        cyan
color markers    brightred    black
color quoted     green        black
color signature  cyan         black
color status     brightgreen  blue
color tilde      blue         black
color tree       red          black
color header     brightgreen  black ^From:
color header     brightcyan   black ^To:
color header     brightcyan   black ^Reply-To:
color header     brightcyan   black ^Cc:
color header     brightgreen  black ^Subject:
color body       brightred    black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+
color body       brightblue   black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+
color index      brightyellow black ~N

alias wtx358 <wtx358@qq.com>

PS: 另外介绍一个 mutt 小技巧, 标记所有邮件为已读:

macro index \cr "<tag-pattern>.\n<tag-prefix><clear-flag>N<untag-pattern>.\n"

10.3.1   Mutt with GnuPG

路径: /usr/doc/mutt-1.5.x/samples/gpg.rc

把 mutt 自带的 gpg.rc 复制到 ~/.mutt 目录里面, 在 ~/.muttrc 文件里引用.

写邮件时按 p 键会出现签名和加密的选项, 根据需要选择即可.

10.4   msmtp

安装: http://slackbuilds.org/repository/14.1/network/msmtp/

~/.msmtprc:

account default
host smtp.xx.xxx
from xxx@xxx.xxx
# 查阅 man 获取更多认证选项
auth login
user xxx
password xxx
# 如果你的 SMTP 服务器支持 TLS 加密, 去掉下面一行的注释
# tls
logfile ~/.msmtp.log

10.5   w3m

安装: http://slackbuilds.org/repository/14.1/network/w3m/

~/.mailcap:

text/html; w3m -T text/html -I %{charset} -dump %s; nametemplate=%s.html; copiousoutput

~/.muttrc 文件加上一行:

auto_view text/html

11   MySQL

配置 MySQL Server, 安装 MySQL 默认的数据库:

mysql_install_db

改变 MySQL 数据库目录权限:

chown -R mysql /var/lib/mysql
chgrp -R mysql /var/lib/mysql

开机自动启动 MySQL:

chmod +x /etc/rc.d/rc.mysqld

较新的版本中,MariaDB 会作为默认的 MySQL 软件。

/etc/rc.d/rc.mysqld 强制开启了 skip-networking 功能,需要在这个脚本中关闭。 在配置文件中修改可能无效。

警告

localhost 在 MySQL 中是一个特殊的符号,当使用这个地址连接时, 会使用默认的连接设置,其他设置会无效,比较指定端口。

注解

[ 有意思的例外就是 MySQL , 在 Linux 上, 当你使用 localhost 来连接数据库的时候, MySQL 会使用 Unix domain socket 来传输数据,这种方式会快一些, 因为这是一种进程内通信(IPC)机制,不走网络协议栈,不需要打包拆包, 计算校验和,维护序号等操作。 当你使用 127.0.0.1 的时候, MySQL 还是会使用 TCP/IP 协议栈来进行数据传输。]

请问这一描述是真的吗?

是真的。并且只有 MySQL 是如此做的。

12   其他

12.1   部件(Widgets)

常用部件:

  1. 显示桌面 部件
  2. 文件夹视图 部件

12.2   钱包系统

可以根据需要选择开启或关闭.

12.3   桌面搜索

用不到, 直接关闭.

12.4   笔记本触摸板(触控板)

若要关闭触摸板, 直接运行命令 synclient touchpadoff=1 即可.

12.5   TrackPoint(指点杆)

主要是需要配置中键滚动功能。

注解

适用于 Slackware 13.37+(13.0, 13.1未测试).

Since the new X.Org no longer uses HAL, my old method of configuring the TrackPoint in a file /etc/hal/fdi/policy/11-x11-trackpoint.fdi no longer works. Instead, the new X.Org uses a configuration directory /etc/X11/xorg.conf.d/ where you can add configuration files for your hardware. You’ll see the similarities; my old HAL file looks like this:

<match key="info.product" string_outof="TPPS/2 IBM TrackPoint;PS/2 Generic Mouse">
    <merge key="input.x11_options.EmulateWheel" type="string">true</merge>
    <merge key="input.x11_options.EmulateWheelButton" type="string">2</merge>
    <merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
    <merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
    <merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
    <merge key="input.x11_options.EmulateWheelTimeout" type="string">200</merge>
</match>

While the new way of configuring requires a file (I aptly named it /etc/X11/xorg.conf.d/20-thinkpad.conf but any name that ends on conf will do) in which I wrote:

Section "InputClass"
    Identifier    "Trackpoint Wheel Emulation"
    MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath    "/dev/input/event*"
    Option        "EmulateWheel"        "true"
    Option        "EmulateWheelButton"    "2"
    Option        "EmulateWheelTimeout"    "200"
    Option        "XAxisMapping"        "6 7"
    Option        "YAxisMapping"        "4 5"
    Option        "Emulate3Buttons"    "true"
EndSection

You will have perform a similar exercise if you previously had configured a non-US keyboard in a HAL fdi file. I will leave it up to you to figure out how to repeat this for the new X.Org.

注解

不同型号的 ThinkPad 的 MatchProduct 可能略有不同, 若上述配置无法生效, 则需要通过 xinput --list 命令查看机器真实的 MatchProduct.

Reference:

12.6   Flash 插件

访问 SBo 查找 flashplayer-plugin 来安装。

或者安装编译好的安装包(推荐):

http://www.slackware.com/~alien/slackbuilds/flashplayer-plugin/

12.7   虚拟机

推荐安装 VirtualBox.

12.8   Classifier 自动整理文件

Classifier 根据文件类型,比如音乐、PDF、图像等,来对当前目录的文件进行整理。 它的整理方法是将不同类型的文件放到不同的目录里,其结果看起来井然有序。

安装:

pip install classifier

主页: https://github.com/bhrigu123/classifier

参考: https://linuxtoy.org/archives/classifier.html

12.9   SVN相关

默认配置下 svn diff 不会像 git diff 一样区分修改前和修改后的颜色. 看起来傻乎乎的. 下面来给 svn diff 一点颜色吧.

首先, 安装 colordiff. 可通过 SBo 安装. 若源码无法下载, 可到 Gentoo 的 distfiles 目录下载.

然后, 修改 svn 的配置文件. 在 ~/.subversion/config 內修改:

[helpers]
diff-cmd = colordiff

默认 colordiff 就有提供基本的配色, 已经够用了.

12.10   Git 相关

  • git-cola 图形化管理界面,git gui 因为 tcl/tk 的原因无法输入中文。

12.11   其他

  • seahorse - 图形化 keyring 和密码管理器, 可通过 SBo 安装。
  • pandoc - 强大的文档格式转换工具,建议使用 sbotools 安装,依赖软件包较多。
  • xfce4-screenshooter XFCE4 环境下的截屏工具
  • electronic-wechat 基于微信网页版的微信客户端, 剪切板中的图片可通过 Ctrl+V 粘贴到输入框进行发送。

12.12   第三方软件包管理器

  • slackpkg 官方推荐的
  • sbopkg 可安装Slackbuilds.org网站上的软件包
  • sbotools 强大的 SBo 软件包管理工具,自动分析依赖关系, 在安装有大量依赖关系的软件包时特别有用。