Skip to content

Latest commit

 

History

History
1036 lines (696 loc) · 47.4 KB

01.md

File metadata and controls

1036 lines (696 loc) · 47.4 KB

基本系统安装及配置

ArchLinux 安装的絮絮叨叨

绝大部分参见 官方Wiki的新手指南,看wiki还是优先看英文的,中文的更新慢,有的时候会坑死,中文wiki那部分有大陆必看的部分,你懂的。

下镜像之后烧录,UltraISO 不好用了,Win下使用 Win32diskimager,Linux下使用dd,制作完成之后想要恢复原来的容量需要清除第一个扇区

因为Arch是个滚动发行版,没有具体的版本一说,所以只要不是太老的版本都可以,网络非常重要,没网络是没法安装Arch的。 首先确认启动模式是否为UEFI

# efivar -l

默认是英文键盘布局,一般没人改,如果修改布局,有几个文件要连带修改。

接着准备网络,如果通过DHCP的先ping一下,看看连通性。必须用ip link看自己的设备名称,然后写下来,特殊设备准备好firmware,比如内核不支持的无线网卡什么的,特殊的还是先看看wiki再说。

安装过程的无线网可以先使用# wifi-menu your-wireless-device,安装完之后使用netctl或者装X用NetworkManager。NetworkManager和netctl会有冲突,安完DE之后可以考虑彻底关闭netctl了。

通过parted,fdisk,cfdisk等创建分区表,分区之后要创建文件系统,mkfs神马的,别忘了。

正式安装之前如果有swap一定先挂载上,一是不怕没空间,二是生成fstab的时候会创建swap的条目。

挂载分区都是挂到 /mnt, 一定先挂根,接着mkdir -p挂上其余的,用lsblk检验。

刚开始一定选个速度快,与官方同步快的mirror,要不慢死了。

pacstrap, pacman执行过程中死了也不要终止它执行,非常重要要说两遍的,懒得复制了,还有必读pacman的说明

chroot之后别忘再次设置网络,不然哭死。

单系统没有时钟问题,双系统的话最好bios使用UTC时间,底下单独列了一项。

创建ramdisk注意修改/etc/mkinitcpio.conf中的hook;如果是vps里安装Arch而且使用了virtio的驱动(如果看到的是 /dev/vdX 就别犹豫了),需要添加 virtio virtio_pci virtio_blk virtio_ring 到 MODULE 中;如果在 mkinitcpio 的时候出现提示可能缺少firmware的情况,需要先用 modinfo 看一下是做什么用的,接下来去安装,一般在AUR中,包名一般为XXX-firmware。

单系统安装grub的时候一定安装到磁盘而不是分区,也就是不要用sdaX;Windows和Arch的双系统,尤其是安装在同一块硬盘上,需要加上 --debug --force 参数强迫grub-install工作,详见wiki

为了保险,最后可以umount -R /mnt,一般来说在reboot的时候能够正确处理。

总之安装确保基础的有了,然后网络通了,安装CLI的浏览器,比如w3m,links,elinks去查wiki。

安装完了之后进新系统,别高兴太早,先创建普通用户,装vim,用visudo修改sudo权限的用户,没什么事不用root。

系统维护提高系统稳定性要仔细看。

中文社区archlinuxcn的仓库和yaourt的archlinuxfr仓库尽量加上。Multilib最好打开,不是高手别开各种Testing。

如果发现更新包比较慢,一般是坑爹的网络环境导致的,比如连接 dl.google.com 的包(典型例子为google-chrome)更新,先在 pacman.conf 中IgnorePkg,然后在早晨大约05:00~07:00的时段更新这类包,一般能达到满速。

Arch已经全面systemd了,以前的SysVInit脚本也可以用,但还是学习一下怎么写xxx.service文件吧。

至于GUI,驱动方面尽量没有特殊需求不用“官方驱动”,开源才是王道,顺便Fuck you nVidia。

安装Xorg之后解决驱动问题,刚开始要用xterm和twm简单startx测试一下安装的驱动和X的配合效果,接下来再安装DM、DE,有另外需求的可以安装其他的WM,双显卡笔记本最恶心,暂时用的bumblebee,NVIDIA GTX660的显卡用nouveau的开源驱动+linux 3.19.2会出现X随机死掉的现象,貌似是个bug,已经换用nvidia闭源驱动。

DM是帮助自动开X的,可以选择,WM看自己需求,写代码多的用平铺式的,像我这种渣渣就先用DE里面的,比如KDE的kWin。DE是一揽子解决方案,目前用KDE,的确很花哨。

防火墙还是用iptables吧,安装之后默认是空规则,需要自己加。Arch的iptables你不弄他就和没有一样。

字体需要安装一堆,少安点也可以,它们也不怎么占地方,中文的话喜欢思源黑体,文泉驿大家都用,ttf-fantasque-sans的等宽字体貌似也可以,还没试过。之后是安装语言、中文输入法。

网络工具需要安装net-tools,dns相关的dig,nslookup在extra/bind-tools中。

Qt 和 GTK 应用程序要装主题的,不然你会后悔的。主题有theme engine。

shell还是zsh强大,zsh的话有个oh-my-zsh比较傻瓜化。

多线程压缩:针对gzip的pigz,针对bzip2的pbzip2,至于xz,从版本5.2开始可以开启 -T 0 选项,也可以直接 export XZ_OPT="--threads=0"

ArchLinux 和 Windows 10 x64 解决时间问题(可开时间同步)

首先要 搞定Windows 的默认设置,否则M$自动同步时间会将BIOS时钟搞乱。

在windows x64中: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal建立一个QWORD值,十六进制1,设置 Asia/Shanghai 时区,或者直接导入下面的注册表脚本,存为 .reg 文件。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=hex(b):01,00,00,00,00,00,00,00

接下来进入Arch,将bios时钟同步成UTC,首先设置好timezone,一般在装系统的时候已经设置为 Asia/Shanghai 了,接下来:

  1. pacman -S ntp安装时钟同步工具
  2. 正确设置时区,这步一般都没问题
  3. 运行 # ntpd -qg 手动通过网络进行时间同步.
  4. 运行 # hwclock --systohc 将当前UTC软件时间写入到硬件时钟.

重启进入Windows,这时候查看时钟应该是正常了,可以用自带的时间同步了。

上述设置完再次重启进入Arch的时候会出现时间FIX的条目,应该是修改文件系统内部日志的时间信息,我这里是EXT4,一般不用人工干预,自动处理结束之后看一下Arch的时间,一般已经正常。

这样设置可以开启windows里的时间同步功能,两个系统的时间同步操作都不会搞乱BIOS时钟。

Ubuntu 基础配置

双系统引导

单硬盘安装 Windows 和 Linux 双系统

1. 按照如下表格,设定分区,Grub 安装到 /boot 分区
分区格式 挂载点 分区大小 位置
EXT4 / 45 GiB /dev/sdb2
EXT3 /boot 200 MiB /dev/sdb7
—— swap 512 MiB /dev/sdb8
EXT4 /usr 50 GiB /dev/sdb9
EXT4 /var 18 GiB /dev/sdb10
EXT4 /home 60 GiB /dev/sdb11
2. 进入 Live USB 模式
# dd if=/dev/sdb7 of=ubuntu.pbr bs=512 count=1  /* mbr 文件名任意,与下面一致 */
3. 进入 Win 系统,拷贝 ubuntu.pbr 到 C 根目录,然后分别执行以下内容
bcdedit /enum >> c:\list.txt                                      //导出一个名为list的文本文件,包含目前的配置
bcdedit /create /d "ubuntu" /application bootsector               //新建一个启动项,下文{ID}之的就是这个值
bcdedit /set {ID} device partition=c:                             //设置MRB文件所在的分区
bcdedit /set {ID} path \ubuntu.pbr                                //设置MRB文件所在的路径
bcdedit /displayorder {ID} /addlast                               //添加启动项到最后
bcdedit /default {ID}                                             //设置默认启动项为ubuntu
bcdedit /timeout 3                                                //设置时间为3s
4. (可选) NTbootautofix 更改 bootmgr 为 Legacy 模式,更改超时时间

双硬盘安装 Windows 和 Linux 双系统 (每个盘一个系统)

1. 安装类似单硬盘,正常分区,一般 / 和 /boot 分为 主分区,Grub 安装在 Linux 所在硬盘上,不在分区中
2. 在 Win 下使用 EasyBCD 添加新条目-->Linux/BSD-->新版本添加一个 Grub2 的,老版本添加 Grub(Legacy),看见\NST\AutoNeoGrub0.mbr 这个项就成功了

上网 (PPPoE)

终端命令配置

你被询问是否需要'noauth'和'defaultroute'选项和去掉'nodetach',这里选择"Yes"
Use peer DNS - 选择 "Yes"
Limited MSS problem - 选择 "Yes"
当你被询问是否在需要在进入系统的时候自动连接,你可以选择"Yes"

1. 打开终端配置上网
# ifconfig eth0 up
# pppoeconf

开始配置上网,出来的是终端界面,因为是笔记本记得还有一个让选择网卡的,选择有线猫的那个就行,之后输入宽带用户名 删除 username 和密码。

2. 联网:
# pon dsl-provider
3. 断网:
# poff
4. 查看日志( 断网下)
$ plog
5. 查看接口信息( 联网下)
$ ifconfig ppp0

测试延迟和路由追踪

在Windows中我们可以使用 tracert来追踪路由,不过到了Linux,就要使用这两个命令了

tracepath www.baidu.com  /* 这条很类似于 tracert                   */
mtr www.baidu.com        /* 这条可以实时返回追踪路由信息和ping延时 */
traceroute www.baidu.com /* 这条也可以,可以理解为win的tracert     */

图形界面方法

点击任务栏右上角联网图标,“编辑连接”选择“DSL添加
用户名:你宽带的用户名
服务: 一般不变
密码:宽带用户对应的密码
Ipv4设置:自动
PPPoE勾上自动连接,每次开机只需要点击右上角的DSL ******(连接名称自己改一个,我的为ADSL) 连接就可以了!

频繁断网问题解决办法:

检查pppoe的配置文件 # vim /etc/ppp/options,看到其中的两条:

lcp-echo-failure 4
lcp-echo-interval 30

意思大概为30秒内连接4次失败就断网,把4改成20试了试。我索性改成了30,这样之后就没出现过断网事件!

Network Manager显示设备未托管的解决办法

方法一 更改相关设置

配置网络连接管理文件

# gedit /etc/NetworkManager/NetworkManager.conf

打开后,找到 [ifupdown] managed=false

修改成:

[ifupdown] managed=true

运行 # gedit /etc/network/interfaces 只保留 auto lo iface lo inet loopback

# cp /etc/resolv.conf /etc/resolv.conf_backup   //删除dns设置
# service network-manager restart               //重启 network-manager服务
# /etc/init.d/network-manager restart           //或者这个重启服务
方法二 使用新版的NetworkManager
从 PPA 更新 network-manager
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BC8EBFE8

在/etc/apt/sources.list最后加上

/* 添加 PPA  */
deb http://ppa.launchpad.net/network-manager/trunk/ubuntu precise main
deb-src http://ppa.launchpad.net/network-manager/trunk/ubuntu precise main

/* 使用 aptitude 比较安全 */
# aptitude update
# aptitude safe-upgrade

软件源

# cp /etc/apt/sources.list /etc/apt/sources.list_backup

先备份原来的文件,保留

extras.ubuntu.com
security.ubuntu.com

使用如下软件源

#-----------------------------bjtu-----IPv4 Only-------------------------------------#
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
#-----------------------------aliyun------更新source必备-----------------------------#
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

其中 163 网易的源测试起来比较好,另外,阿里云也有镜像了,速度也不错

包管理简介

dpkg绕过apt包管理数据库对软件包进行操作,所以你用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装。dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件。apt会解决和安装模块的依赖问题,并会咨询软件仓库, 但不会安装本地的deb文件, apt是建立在dpkg之上的软件管理工具。aptitude 是 Debian GNU/Linux 系统中, 非常神奇的的软件包管理器,基于大名鼎鼎的 APT 机制, 整合了 dselect 和 apt-get的所有功能, 并提供的更多特性,特别是在依赖关系处理上。aptitude与 apt-get 一样,是 Debian 及其衍生系统***能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

安装软件包
# dpkg -i package_name.deb #安装本地软件包,不解决依赖关系
# apt-get install package #在线安装软件包
# aptitude install pattern #同上
# apt-get install package --reinstall #重新安装软件包
# apitude reinstall package #同上
移除软件包
# dpkg -r package #删除软件包
# apt-get remove package #同上
# aptitude remove package #同上
# dpkg -P #删除软件包及配置文件
# apt-get remove package --purge #删除软件包及配置文件
# apitude purge pattern #同上
自动移除软件包
# apt-get autoremove #删除不再需要的软件包

注:aptitude 没有,它会自动解决这件事

清除下载的软件包
# apt-get clean #清除 /var/cache/apt/archives 目录
# aptitude clean #同上
# apt-get autoclean #清除 /var/cache/apt/archives 目录,不过只清理过时的包
# aptitude autoclean #同上
编译相关
# apt-get source package #获取源码
# apt-get build-dep package #解决编译源码 package 的依赖关系
# aptitude build-dep pattern #解决编译源码 pattern 的依赖关系
平台相关
# apt-cross --arch ARCH --show package 显示属于 ARCH 构架的 package 软件包信息
# apt-cross --arch ARCH --get package #下载属于 ARCH 构架的 package 软件包
# apt-cross --arch ARCH --install package #安装属于 ARCH 构架的 package 软件包
# apt-cross --arch ARCH --remove package #移除属于 ARCH 构架的 package 软件包
# apt-cross --arch ARCH --purge package #移除属于 ARCH 构架的 package 软件包
# apt-cross --arch ARCH --update #升级属于 ARCH 构架的 package 软件包

注:慎重考虑要不要用这种方法来安装不同构架的软件包,这样会破坏系统。对于 amd64 的用户可能需要强制安装某些 i386 的包,千万不要把原来 amd64 本身的文件给 replace 了。最好只是安装一些 lib 到 /usr/lib32 目录下。同样地,可以用 apt-file 看某个其它构架的软件包包含哪些文件,或者是文件属于哪个包,不过记得最先要用 apt-file --architecture ARCH update 来升级 apt-file 的数据库,在 search 或 show 时也要指定 ARCH

更新源
# apt-get update #更新源
# aptitude update #同上
更新系统
# apt-get upgrade #更新已经安装的软件包
# aptitude safe-upgrade #同上
# apt-get dist-upgrade #升级系统  可能删除某些包,慎用!
# aptitude full-upgrade #同上

卸载依赖关系错误的软件包

1、通过deb包安装的情况:

安装.deb包: # dpkg -i package_file.deb

反安装.deb包: # dpkg -r package_name

2、通过apt-get安装的情况:

安装 # apt-get install package_name

反安装 # apt-get remove package_name

# dpkg -p package_name卸载软件包及其配置文件,但无法解决依赖关系!
# aptitude purge pkgname卸载软件包及其配置文件与依赖关系包!
3、清除所有已删除包的残余配置文件
# dpkg -l |grep ^rc|awk '{print $2}' |# xargs dpkg -P

如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。

dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [];
Use dselect' or aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating .deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [
].
Options marked [
] produce a lot of output - pipe it through less' or more' !

注: dpkg安裝的可以用apt卸载,反之亦可

4、常用apt命令
# apt-cache search                   # ------(package 搜索包)
# apt-cache show                     #------(package 获取包的相关信息,如说明、大小、版本等)
# apt-get install                    # ------(package 安装包)
# apt-get install                    # -----(package - - reinstall 重新安装包)
# apt-get -f install                 # -----(强制安装#"-f = --fix-missing"修复安装...)
# apt-get remove                     #-----(package 删除包)
# apt-get remove --purge             # ------(package 删除包,包括删除配置文件等)
# apt-get autoremove --purge         # ----(package 删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐))
# apt-get update                     #------更新源
# apt-get upgrade                    #------更新已安装的包
# apt-get dist-upgrade               # ---------升级系统
# apt-get dselect-upgrade            #------使用 dselect 升级
# apt-cache depends                  #-------(package 了解使用依赖)
# apt-cache rdepends                 # ------(package 了解某个具体的依赖?#当是查看该包被哪些包依赖吧...)
# apt-get build-dep                  # ------(package 安装相关的编译环境)
# apt-get source                     #------(package 下载该包的源代码)
# apt-get clean                      # --------清理下载文件的存档
# apt-get autoclean                  # --------只清理过时的包
# apt-get check                      #-------检查是否有损坏的依赖

几种常见的包管理工具命令对照

Debian使用的是apt和dpkg,Gentoo用的是emerge,Redhat的yum、Suse的zypper、Arch的pacman、Slackware的slackpkg

更新源:

# apt-get update
# emerge --sync
# yum check-update
# zypper refresh
# pacman -Syu
# slackpkg update

搜索包:

# apt-cache search
# emerge --search
# yum search
# zypper search
# pacman -Qs
# slackpkg search

查看包的详细信息:

# apt-cache show
# emerge -udpv
# yum info
# zypper info
# pacman -Qi
# --

显示依赖关系:

# apt-cache depends
# emerge --emptytree --pretend
# yum deplist 
# -- 
# --
# --

安装包:

# apt-get install
# emerge
# yum install
# zypper install
# pacman -S
# slackpkg install

删除包:

# apt-get remove
# emerge --unmerge
# yum erase
# zypper remove
# pacman -R
# slackpkg remove

显示可用更新:

# apt-get upgrade -> n
# --
# yum list updates
# zypper list-updates
# --
# --

更新全部已安装的包:

# apt-get upgrade
# emerge -Nua world
# yum update
# zypper update
# pacman -Syu
# slackpkg update-all

更新整个系统:

# apt-get dist-upgrade
# emerge -NuDa world
# yum upgrade
# zypper dup
# --
# --

列出已安装的包:

# dpkg -l
# equery l (需要安装gentoolkit)
# rpm -qa
# rpm -qa
# pacman -Qii
# ls /var/log/packages/

删除缓存中的旧包:

# apt-get clean
# rm -r /usr/portage/distfiles
# yum clean
# --
# 手动去 /var 里面找,不过不建议删除旧包
# --

删除不需要的依赖关系:

# apt-get autoremove
# emerge --depclean
# --
# --
# --
# --

apt-get 配置

1. 方法一:利用配置文件

# touch /etc/apt/apt/apt.conf  // 创建空文件之后去 doc 中有 example
# gedit /etc/apt/apt.conf

添加

Acquire::http::Proxy “http://yourproxyaddress:proxyport”;
Acquire::https::Proxy “http://yourproxyaddress:proxyport”;
Acquire::ftp::Proxy “http://yourproxyaddress:proxyport”;

之后使用命令

# apt-get -c=/path/to/apt.conf update

2. 方法二:直接命令设置apt-get代理

# apt-get -o Acquire::http::proxy="http://127.0.0.1:8087/" update

常用 apt-get 实例

# apt-cache search packagename                         搜索包   
# apt-cache show packagename                           获取包的相关信息,如说明、大小、版本等    
# apt-get install packagename                           安装包   
# apt-get install packagename --reinstall               重新安装包   
# apt-get -f install                                    修复安装 ”-f = –fix-missing”   
# apt-get remove packagename                            删除包   
# apt-get remove packagename --purge                   删除包,包括删除配置文件等   
# apt-get update                                       更新源   
# apt-get upgrade                                      更新已安装的包   
# apt-get dist-upgrade                                   升级系统   
# apt-get dselect-upgrade                              使用 dselect 升级   
# apt-cache depends packagename                       了解使用依赖   
# apt-cache rdepends packagename                      是查看该包被哪些包依赖   
# apt-get build-dep packagename                       安装相关的编译环境   
# apt-get source packagename                          下载该包的源代码   
# apt-get clean                                       清理无用的包   
# apt-get autoclean                                   清理无用的包   
# apt-get check                                       检查是否有损坏的依赖   
# apt-get autoremove                                  自动移除包   

改变桌面程序

从 Unity 转为 GNOME

【首先请确保没有设置自动登录】

1. 安装GNOME 3
# apt-get install gnome-shell
# apt-get install gnome-tweak-tool
# apt-get install gnome-themes*   // 或者简单的选择 # apt-get install gnome-themes-standard
/*  GNOME  2 */
# apt-get install gnome-session-fallback
# apt-get install gnome-panel  // 或者这个
2. 如果希望自动登录,这时候可以做的是:
# /usr/lib/lightdm/lightdm-set-defaults -s gnome-classic //自动登入GNOME SHELL CLASSIC
# /usr/lib/lightdm/lightdm-set-defaults -s gnome-shell  //如果喜欢GNOME3
3. 删除UNITY:
/* 一般现在不卸载了,笔者测试容易出问题 */
# apt-get -y --auto-remove purge unity
# apt-get -y --auto-remove purge unity-common
# apt-get -y --auto-remove purge unity-lens*
# apt-get -y --auto-remove purge unity-services
# apt-get -y --auto-remove purge unity-asset-pool

注意:不能用 # apt-get --auto-remove purge unity*
unity-greeter 必须保留

改变输入法

从 iBus 转为 Fcitx

1. 卸载Ibus输入法
# killall ibus-daemon                  //杀掉后台进程
# apt-get purge ibus ibus-gtk ibus-gtk3 ibus-pinyin* ibus-sunpinyin ibus-table python-ibus
$ rm -rf ~/.config/ibus                  //删除配置文件
# apt-get purge indicator-keyboard     //去掉键盘提示
2. 安装fcitx输入法,之后重启

14.04.1 LTS 进入搜狗输入法网页,一般下载 x64 版本即可,deb包会自动安装fcitx,如有必要可重启,一般注销重新登陆即可

安装显卡驱动

单独立显卡安装 手工安装Ubuntu nvidia驱动

1. 官方下载最新的Ubuntu nvidia驱动 类似 NVIDIA-Linux-x86-173.14.12.run
2. 删除原Ubuntu nvidia驱动包
# apt-get –purge remove nvidia-glx nvidia-glx-new
# apt-get –purge remove nvidia-settings nvidia-kernel-common
3. Ubuntu nvidia安装头文件和编译环境
# apt-get install linux-headers-$(uname -r) build-essential
4. 禁止系统使用默认的驱动 此步骤可以两次运行 NVIDIA-Linux-x86-173.14.12.run 文件,第一次运行有提示添加屏蔽 nouveau 驱动的步骤,添加之后重启,然后再运行即可安装,每次运行之前必须关闭 X Server
# gedit /etc/default/linux-restricted-modules-common  // 最后的双引号中添加nv,即“”改成“nv”
5. 备份当前的显示设置,预防启动X失败时恢复到原来的设置
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
6. 接着离开桌面执行,按Ctrl+Alt+F1,登录,停止gdm (或lightdm)
# /etc/init.d/gdm stop
# service lightdm stop
7. 开始安装
$ cd /path/to/nvidia-linux-x86-1.0-9631-pkg1.run
$ chmod +x nvidia-linux-x86-1.0-9631-pkg1.run
# ./nvidia-linux-x86-1.0-9631-pkg1.run

进入安装界面后,首先接受协议,选“接受”
提示有旧驱动,询问是否删除旧驱动,选Yes;
提示缺少某某模块(modules),询问是否上网下载,选no;
提示编译模块,询问是否进行编译,选ok
提示将要修改xorg.conf,询问是否答应,选Yes

8. 安装完成回到终端,重启GDM
# /etc/init.d/gdm start
# service lightdm start

此时会看到NV的logo,驱动安装成功。

9. 查看显卡是否装好
$ glxinfo | grep rendering

显示”direct rendering: Yes”,则已安装

10. 宽屏改变分辨率
# nvidia-settings

进入便可以改变分辨率。必须用root权限运行,否则配置无法保存到xorg.conf里面。

11. 安装完Ubuntu nvidia驱动后,莫名奇妙的出现:打开各类窗口,发现窗口右上方的最小化、还原、关闭按钮都不见了,整个顶部标题栏都消失了,更改外观主题也没有用。以为是窗口管理器的问题,在网上找了很多方法都不行,最后发现
$ metacity - -replace

就能OK。

笔记本双显卡安装

待定

FireFox 配置 Adobe Flash Player Plugin

1. FireFox升级最新版本

2. 从adobe官方网站下载flash的安装包(install_flash_player_xx_linux..tar.gz)

3. 执行以下命令

$ tar zxvf install_flash_player_xx_linux.<architecture>.tar.gz
# cp libflashplayer.so /usr/lib/mozilla/plugins/
# ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox-addons/plugins/
# ln -sf /usr/lib/mozilla/plugins/libflashplayer.so  /usr/lib/xulrunner-addons/plugins/

4. 未尽事宜参照包中 README

5. 重启浏览器

科学上网工具配置

注意导入 CA 证书到浏览器中

Firefox 的 Autoproxy 扩展

链接

Goagent

1. 安装基础依赖
名称 作用 是否必选
python2 建议安装python2.7,如需在Linux上传或安装gevent需先安装python-dev Y
gevent 1.0 提升多线程性能,强烈建议安装 N
greenlet gevent的依赖,一般安装gevent会自动安装 N
python-vte 基于GTK的简单GUI所需 N
python-openssl 生成证书所需,强烈建议安装,如删除了goagent自动证书则必须安装 N
pycrypto RC4加密所需,建议安装 N
python-appindicator Unity桌面下的托盘组件,其他桌面不必安装 N
# apt-get install python-dev python-greenlet python-gevent python-vte python-openssl python-crypto

如果gevent版本是0.13则需要用下面的方法安装1.0版
python-appindicator为ubuntu专有,其他系统用户不用管
python-vte 为gtk托盘窗口所需,其他发行版请自行根据对应系统安装所需软件

2. 安装gevent (14.04.1 已经不需要手动安装)

需要在安装 python-dev 之后才能正确安装 gevent 和上传server,
安装gevent需要安装了 gcc(Linux/Unix) 或 xcode(Mac OSX).

# apt-get install python-dev python-pip
# pip install gevent --upgrade

也可以手动编译安装

如果greenlet版本低于0.4.0会导致gevent装不上,请先使用以下命令安装greenlet(0.4.2)

$ wget http://mirrors.aliyun.com/pypi/packages/source/g/greenlet/greenlet-0.4.2.zip && unzip greenlet-0.4.2.zip && cd greenlet-0.4.2
# python setup.py install

安装gevent(1.0)

$ wget http://mirrors.aliyun.com/pypi/packages/source/g/gevent/gevent-1.0.tar.gz && tar xvzpf gevent-1.0.tar.gz && cd gevent-1.0
# python setup.py install

如果不想安装gevent可以下载 gevent-1.0-py2.7-linux.egg gevent-1.0dev-macosx-intel.egg 放local文件夹

3. 上传
$ cd /path/to/goagent/server
$ python uploader.zip
4. 运行
$ cd /path/to/goagent/local
# python proxy.py

也可以赋予proxy.py可执行权限之后直接双击proxy.py。在proxy.py上面右击,属性的权限中勾选允许以程序执行文件
直接运行goagent-gtk.py可以使用gtk托盘方式运行goagent。 运行addto-startup.py即可加入开机启动。也可以自行添加一个启动项,命令为

# python /path/to/goagent/local/goagent-gtk.py

其中路径修改为自己系统中goagent-gtk.py的路径 使用#提权之后可以自动导入证书,部分浏览器请自行手动导入证书

5. 退出

如果是直接终端使用"python proxy.py"运行,在终端按"Ctrl+C"组合键可终止运行;
如果使用gtk托盘,在托盘图标上右键菜单有退出选项。直接关闭终端窗口也会退出。
如果以后台进程运行,先用"ps aux | grep proxy.py"找到goagent的PID,然后直接kill对应的PID 。

ps aux|grep proxy.py|grep -v "grep"|awk '{print $2}'|xargs kill

Wallproxy

1. 基本同 Goagent 配置

附上appid列表

Wallproxy:

wongloveg21|wongloveg22|wongloveg23|wongloveg24|wongloveg25|wongloveg26|wongloveg27|wongloveg28|wongloveg29|wongloveg30|wongloveg09|wongloveg10|wongloveg31|wongloveg32|wongloveg33|wongloveg34|wongloveg35|wongloveg36|wongloveg37|wongloveg38|wongloveg39|wongloveg40|wongloveg41|wongloveg42|wongloveg43|wonglovehtc|wongloveg11|wongloveg12|wongloveg13|wongloveg14|wongloveg15|wongloveg16|wongloveg17|wongloveg18|wongloveg19|wongproxy001|wongproxy002|wongproxy003|wongproxy004|wongproxy005|wongproxy006|wongproxy007|wongproxy008|wongproxy009|wongproxy010|wongproxy011|wongproxy012|wongproxy013|wongproxy014|wongproxy015|fancproxy001|fancproxy002|fancproxy003|fancproxy004|fancproxy005|fancproxy006|fancproxy007|fancproxy008|fancproxy009|fancproxy010|fancproxy011|fancproxy012|fancproxy013|fancproxy014|fancproxy015|fancproxy016|fancproxy017|fancproxy018|fancproxy019|fancproxy020|fancproxy021|fancproxy022|fancproxy023|fancproxy024|fancproxy025|maziproxy001|maziproxy002|maziproxy003|maziproxy004|maziproxy005|maziproxy006|maziproxy007|maziproxy008|maziproxy009|maziproxy010|maziproxy011|maziproxy012|maziproxy013|maziproxy014|maziproxy015|maziproxy016|maziproxy017|maziproxy018|maziproxy019|maziproxy020|maziproxy021|maziproxy022|maziproxy023|maziproxy024|maziproxy025|luckmonkey001|luckmonkey002|luckmonkey003|luckmonkey005|luckmonkey006|luckmonkey007|luckmonkey008|luckmonkey009|luckmonkey010|luckmonkey011|luckmonkey012|luckmonkey013|luckmonkey014|luckmonkey015|luckmonkey016|luckmonkey017|luckmonkey018|luckmonkey019|luckmonkey020|luckmonkey021|luckmonkey022|luckmonkey023|luckmonkey024|luckmonkey025|luckmonkey026

Goagent:

qq541236405|wonglikewin8|syronelikewin8|qqlikewin8|hjjingyi|hjjingyilovewin8|qqlovewin8|syronelovewin8|wonglovewin8|huotui026|huotui027|huotui028|huotui029|huotui030|huotui031|huotui032|huotui033|huotui034|huotui035|huotui036|huotui037|huotui038|huotui039|huotui040|huotui001|huotui002|huotui003|huotui004|huotui005|huotui006|huotui007|huotui008|huotui009|huotui010|huotui011|huotui012|huotui013|huotui014|huotui015|huotui016|huotui017|huotui018|huotui019|huotui020|huotui021|huotui022|huotui023|huotui024|huotui025|wongloveg20|wongloveg01|wongloveg02|wongloveg03|wongloveg04|wongloveg05|wongloveg06|wongloveg07|wongloveg08|wongloveg44|wongloveg45|wongloveg46|wongloveg47|wongloveg48|wongloveg49|wongloveg50|wongloveg51|wongloveg52|wongloveg53|wongloveg54|wongloveg55|wongloveg56|wongloveg57|wongloveg58

用户配置文件

Goagent的 proxy.user.ini

[listen]
visible = 0

[gae]
appid = qq541236405|wonglikewin8|syronelikewin8|qqlikewin8|hjjingyi|hjjingyilovewin8|qqlovewin8|syronelovewin8|wonglovewin8|huotui026|huotui027|huotui028|huotui029|huotui030|huotui031|huotui032|huotui033|huotui034|huotui035|huotui036|huotui037|huotui038|huotui039|huotui040|huotui001|huotui002|huotui003|huotui004|huotui005|huotui006|huotui007|huotui008|huotui009|huotui010|huotui011|huotui012|huotui013|huotui014|huotui015|huotui016|huotui017|huotui018|huotui019|huotui020|huotui021|huotui022|huotui023|huotui024|huotui025|wongloveg20|wongloveg01|wongloveg02|wongloveg03|wongloveg04|wongloveg05|wongloveg06|wongloveg07|wongloveg08|wongloveg44|wongloveg45|wongloveg46|wongloveg47|wongloveg48|wongloveg49|wongloveg50|wongloveg51|wongloveg52|wongloveg53|wongloveg54|wongloveg55|wongloveg56|wongloveg57|wongloveg58
password = wongsyrone

[iplist]
google_cn = 163.28.116.38|103.1.139.166|210.153.73.50|58.145.238.49|95.143.84.163|193.192.226.183|193.90.147.53|212.188.7.119|64.15.119.233|93.183.211.216|85.182.250.84|220.255.5.103|91.213.30.170|212.188.10.119|220.255.5.241|62.1.38.153|64.233.166.35|41.201.128.49|62.1.38.182|212.188.15.57|41.84.159.15
google_hk = 163.28.116.38|103.1.139.166|210.153.73.50|58.145.238.49|95.143.84.163|193.192.226.183|193.90.147.53|212.188.7.119|64.15.119.233|93.183.211.216|85.182.250.84|220.255.5.103|91.213.30.170|212.188.10.119|220.255.5.241|62.1.38.153|64.233.166.35|41.201.128.49|62.1.38.182|212.188.15.57|41.84.159.15

Wallproxy 的 user.ini

[gae]
appid = wongloveg21|wongloveg22|wongloveg23|wongloveg24|wongloveg25|wongloveg26|wongloveg27|wongloveg28|wongloveg29|wongloveg30|wongloveg09|wongloveg10|wongloveg31|wongloveg32|wongloveg33|wongloveg34|wongloveg35|wongloveg36|wongloveg37|wongloveg38|wongloveg39|wongloveg40|wongloveg41|wongloveg42|wongloveg43|wonglovehtc|wongloveg11|wongloveg12|wongloveg13|wongloveg14|wongloveg15|wongloveg16|wongloveg17|wongloveg18|wongloveg19|wongproxy001|wongproxy002|wongproxy003|wongproxy004|wongproxy005|wongproxy006|wongproxy007|wongproxy008|wongproxy009|wongproxy010|wongproxy011|wongproxy012|wongproxy013|wongproxy014|wongproxy015|fancproxy001|fancproxy002|fancproxy003|fancproxy004|fancproxy005|fancproxy006|fancproxy007|fancproxy008|fancproxy009|fancproxy010|fancproxy011|fancproxy012|fancproxy013|fancproxy014|fancproxy015|fancproxy016|fancproxy017|fancproxy018|fancproxy019|fancproxy020|fancproxy021|fancproxy022|fancproxy023|fancproxy024|fancproxy025|maziproxy001|maziproxy002|maziproxy003|maziproxy004|maziproxy005|maziproxy006|maziproxy007|maziproxy008|maziproxy009|maziproxy010|maziproxy011|maziproxy012|maziproxy013|maziproxy014|maziproxy015|maziproxy016|maziproxy017|maziproxy018|maziproxy019|maziproxy020|maziproxy021|maziproxy022|maziproxy023|maziproxy024|maziproxy025|luckmonkey001|luckmonkey002|luckmonkey003|luckmonkey005|luckmonkey006|luckmonkey007|luckmonkey008|luckmonkey009|luckmonkey010|luckmonkey011|luckmonkey012|luckmonkey013|luckmonkey014|luckmonkey015|luckmonkey016|luckmonkey017|luckmonkey018|luckmonkey019|luckmonkey020|luckmonkey021|luckmonkey022|luckmonkey023|luckmonkey024|luckmonkey025|luckmonkey026
password = wongsyrone

[gae]
profile = google_hk

[google_hk]
mode = https
hosts = 163.28.116.38|103.1.139.166|210.153.73.50|58.145.238.49|95.143.84.163|193.192.226.183|193.90.147.53|212.188.7.119|64.15.119.233|93.183.211.216|85.182.250.84|220.255.5.103|91.213.30.170|212.188.10.119|220.255.5.241|62.1.38.153|64.233.166.35|41.201.128.49|62.1.38.182|212.188.15.57|41.84.159.15

其他应用

1. 设置 git 代理,仅用于网络状况很不好的情况,比如铁通
/*       全局代理,包括git和apt     */
export https_proxy="127.0.0.1:8087"     // 设置全局变量
export http_proxy="127.0.0.1:8087"
git config --global http.sslVerify false  // 关闭SSL证书验证
/*      局部代理                   */
git config --global http.proxy 127.0.0.1:8087
git config --global https.proxy 127.0.0.1:8087
/*      取消局部代理              */
git config --global http.proxy ""
git config --global https.proxy ""

这样git clone就是走代理了,其实这个设置完以后apt-get的操作也是通过代理的了

2. 设置 apt-get 代理,见上文

Vim 编译安装

1. 首先清除自带的老版本

# apt-get purge vim vim-common vim-runtime

通过UBUNTU源安装的VIM不带有GDB调试功能

2. 安装相应库

# apt-get install build-essential  //安装编译工具
# apt-get install xorg-dev libgtk2.0-dev libncurses5-dev //注意,选取 libncurses5-dev 而非 ncurses-dev
# apt-get build-dep vim-gtk   //安装编译vim-gtk的依赖包
# apt-get build-dep vim       //现在一般用这个安装依赖包

如果不安装ncurses开发包,make时会产生如下错误:

no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with --with-tlib.

/* GUI needed */
# apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev

3. 下载源码

首先我们需要下载VIM的源码,文件名一般为 vim-<version>.tar.bz2

4. 源码编译

运行以下命令,解压VIM源码,准备编译过程

$ cd /path/to/vim/sources
$ tar jxvf vim-<version>.tar.bz2

5. 开始编译并安装

$ ./configure --enable-gnome-check --enable-gui=gnome2 --with-x --enable-xim --with-features=huge --enable-pythoninterp --enable-python3interp --enable-cscope --enable-fontset --enable-rubyinterp --enable-perlinterp --enable-tclinterp --enable-multibyte
$ make -j4
# make install

6. 定制VIM功能

缺省的VIM配置已经适合大多数人,但有些时候你可能需要一些额外的功能,这时就需要自己定制一下VIM。定制VIM很简单,进入vim/src目录,编辑Makefile文件。这是一个注释很好的文档,根据注释来选择:

$ cd ~/vim74/src
$ vim Makefile

然后修改配置

-gtk2支持,也能使用gnome,打开 --enable-gui=gkt2

-最大特性 支持,打开 --with-features=huge (必须打开,否则编译成功vim,运行后设置语法高亮时,产生如下错误

Vim: Caught deadly signal ABRT
Vim: Finished.
Aborted

  • 如果你想把perl, python, tcl, ruby等接口编译进来的话,打开相应的选项,例如,打开了--enable-tclinterp选项;
  • 如果你想在VIM中使用cscope的话,打开 --enable-cscope 选项;
  • 如果你希望在vim使用中文,使能 --enable-multibyte 和 --enable-xim选项;
  • 可通过--with-features=XXX选项来选择所编译的VIM特性集,缺省是 --with-features=normal;
  • 如果你没有root权限,可以把VIM装在自己的home目录,这时需要打开 --prefix = $(HOME) 选项;这里打开了这一项,把VIM安装在home目录下。

编辑好此文件后,就执行可以编辑安装vim了。如果你需要更细致的定制VIM,可以修改config.h文件,打开/关闭你想要的特性。

在VIM中运行下面的命令以生成帮助文件索 引:

:helptags ~/.vim/doc

7. 简单配置VIM

编译安装的VIM,需要建立配置文件,在~目录下建立.vimrc文件,建立 .vim 文件夹,包含 plugin, colors, ftplugin 等等

$ vim ~/.vimrc

编辑之后 :wq 保存退出

8. 把编译的VIM代替先前的VIM

执行如下命令,就可以把自己编译的VIM,代替以前安装的VIM,以后启动VIM时,就不需要在切换到对应目录下,直接输入VIM,就可以启动自己编译的VIM

/* setup soft link file */
# ln -s <source> <target-gvim74>
# ln -s <source> <target-vim74>

未尽事宜参见 vim_files repository

9. 开启 vim 256色支持

1. 先检查终端(一般为 XTerm)当前配置状态

终端运行 echo $TERM 如果返回 xterm 而非 xterm-256color 则不支持 256色,也可使用脚本 terminalcolors.py 脚本进行检验,详情参见 Scripts repository

2. 添加命令

~/.bashrc 中添加

if [ "$TERM" == "xterm" ]; then
    export TERM=xterm-256color
fi

~/.vimrc 中添加

set t_Co=256
3.载入 256色配色方案 验证是否生效

Wine编译安装

1. 先安装依赖的库

# apt-get install flex bison qt4-qmake
# apt-get install libfreetype6-dev
# apt-get install libjpeg-dev libpng-dev libxslt-dev libxml2-dev
# apt-get install libxrender-dev
# apt-get install libgl1-mesa-dev
# apt-get install libglu1-mesa-dev
# apt-get install freeglut3-dev
# apt-get install prelink
# apt-get install libasound2-dev

注意: 也可使用 install-wine-deps.sh 脚本,仅可用于 Ubuntu 12.04 LTS以下的版本(含 12.04),详情参照 Scripts repository

2. 下载最新的源代码

形如 wine-.tar.bz2

3. 解压源码,准备编译

$ tar jxvf wine-<version>.tar.bz2
$ cd wine-<version>/
$ ./configure --enable-win64 --prefix=/path/you/want/to/install
$ make
# make install

4. 后续设置

wine64 --version   //检查版本
/* 创建软连接 避免程序不能用 比如 winecfg*/
# ln -s /usr/local/bin/wine64 /usr/local/bin/wine

VMware 虚拟机安装配置

1. 下载安装文件

一般网络连接地址 https://download3.vmware.com/software/wkst/file 到官网找文件名 直接 wget 比如 https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-10.0.2-1744117.x86_64.bundle

2. 安装

$ chmod +x VMware-Workstation-Full-10.0.2-1744117.x86_64.bundle
# ./VMware-Workstation-Full-10.0.2-1744117.x86_64.bundle

3. 解决 GTK 和 找不到模块文件问题

错误提示为

Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine"

因为你需要 32 位的软件包 gtk2-engines-murrine.

# apt-get install --reinstall gtk2-engines-murrine:i386       // 通常这个就够了
# apt-get install --reinstall gtk2-engines-murrine:amd64
# apt-get install --reinstall gtk2-engines-murrine

错误提示

找不到模块文件 "*.so"

# locate <missiing-module-file>.so

例如

/usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libcanberra-gtk-module.so
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk-module.so

把上面的路径添加到 /etc/ld.so.conf.d/x86_64-linux-gnu.conf 中,然后

# ldconfig                   //重新加载模块

清理旧内核

至少保留一个旧内核,以免新内核不稳定不兼容造成问题。

方法一

1. 查看系统内存在的内核版本列表:
# dpkg --get-selections | grep linux
2. 查看当前Ubuntu系统使用的内核版本
$ uname -a
3. 删除多余内核:

清除headers不带generic 清除image带generic

# apt-get purge linux-headers-3.0.0-12 linux-image-3.0.0-12-generic
4. 更新grub:
# update-grub

方法二

# apt-get install aptitude
# aptitude purge ~ilinux-image-.*\(\!`uname -r`\)

这条命令的作用:删除当前系统没有正在使用的所有内核,一般系统使用的都是最新的内核版本

Java (JRE) 运行环境配置

1. 下载 JRE amd64版本

文件名形如 jre<version>.tar.gz

2. 直接解压 JRE 文件到目录中
$ cd /usr/local
# mkdir java
$ cd java 
# tar zxvf jre<version>.tar.gz
3. 编辑环境变量

# vim /etc/envirionment修改为

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/wong/wine1.7/bin:/usr/local/java/jre1.7.0_55/bin"
CLASSPATH=".:/usr/local/java/jre1.7.0_55/lib"
JAVA_HOME="/usr/local/java/jre1.7.0_55"

注意保留系统自带变量

4. 给 Firefox添加 Java支持
$ cd /usr/lib/mozilla/plugins
# ln -s /usr/local/java/jre<version>/lib/amd64/libnpjp2.so

Linux 下的 NTFS 内核模块 ( Paragon )

一般来说,有两种情况,一种是自带的,老式使用 ntfs-3g 有的时候会比较慢,像 Ubuntu 12.04 LTS 已经在内核支持 NTFS 的挂载和读写了,但是效能可能不是那么令人满意。第二种是专门专注于这方面的公司,比如 Paragon , 它在 Android 下的工具比较好用,不过在 Linux 下提供的免费版本 Express 不支持 DKMS 这个动态内核模块的框架,一旦升级内核之后,还要重新编译,如果购买 Professional 版本,还要花费 $39.95 , 对于笔者这样的来说,是一笔巨大的开支,后来研究官方脚本和GitHub上的脚本之后,自己修改了一个可用的Shell脚本,详情参见 Paragon-DKMS repository