绝大部分参见 官方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"
。
首先要 搞定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 了,接下来:
pacman -S ntp
安装时钟同步工具- 正确设置时区,这步一般都没问题
- 运行
# ntpd -qg
手动通过网络进行时间同步. - 运行
# hwclock --systohc
将当前UTC软件时间写入到硬件时钟.
重启进入Windows,这时候查看时钟应该是正常了,可以用自带的时间同步了。
上述设置完再次重启进入Arch的时候会出现时间FIX的条目,应该是修改文件系统内部日志的时间信息,我这里是EXT4,一般不用人工干预,自动处理结束之后看一下Arch的时间,一般已经正常。
这样设置可以开启windows里的时间同步功能,两个系统的时间同步操作都不会搞乱BIOS时钟。
分区格式 | 挂载点 | 分区大小 | 位置 |
---|---|---|---|
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 |
# dd if=/dev/sdb7 of=ubuntu.pbr bs=512 count=1 /* mbr 文件名任意,与下面一致 */
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
2. 在 Win 下使用 EasyBCD 添加新条目-->Linux/BSD-->新版本添加一个 Grub2 的,老版本添加 Grub(Legacy),看见\NST\AutoNeoGrub0.mbr 这个项就成功了
你被询问是否需要'noauth'和'defaultroute'选项和去掉'nodetach',这里选择"Yes"
Use peer DNS - 选择 "Yes"
Limited MSS problem - 选择 "Yes"
当你被询问是否在需要在进入系统的时候自动连接,你可以选择"Yes"
# ifconfig eth0 up
# pppoeconf
开始配置上网,出来的是终端界面,因为是笔记本记得还有一个让选择网卡的,选择有线猫的那个就行,之后输入宽带用户名 删除 username 和密码。
# pon dsl-provider
# poff
$ plog
$ 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,这样之后就没出现过断网事件!
配置网络连接管理文件
# 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 //或者这个重启服务
# 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 #同上
安装.deb包: # dpkg -i package_file.deb
反安装.deb包: # dpkg -r package_name
安装 # apt-get install package_name
反安装 # apt-get remove package_name
# dpkg -p package_name卸载软件包及其配置文件,但无法解决依赖关系!
# aptitude purge pkgname卸载软件包及其配置文件与依赖关系包!
# 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卸载,反之亦可
# 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
# --
# --
# --
# --
# 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
# apt-get -o Acquire::http::proxy="http://127.0.0.1:8087/" update
# 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 自动移除包
【首先请确保没有设置自动登录】
# 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 // 或者这个
# /usr/lib/lightdm/lightdm-set-defaults -s gnome-classic //自动登入GNOME SHELL CLASSIC
# /usr/lib/lightdm/lightdm-set-defaults -s gnome-shell //如果喜欢GNOME3
/* 一般现在不卸载了,笔者测试容易出问题 */
# 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 必须保留
# 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 //去掉键盘提示
14.04.1 LTS 进入搜狗输入法网页,一般下载 x64 版本即可,deb包会自动安装fcitx,如有必要可重启,一般注销重新登陆即可
# apt-get –purge remove nvidia-glx nvidia-glx-new
# apt-get –purge remove nvidia-settings nvidia-kernel-common
# 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”
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
# /etc/init.d/gdm stop
# service lightdm stop
$ 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
# /etc/init.d/gdm start
# service lightdm start
此时会看到NV的logo,驱动安装成功。
$ glxinfo | grep rendering
显示”direct rendering: Yes”,则已安装
# nvidia-settings
进入便可以改变分辨率。必须用root权限运行,否则配置无法保存到xorg.conf里面。
11. 安装完Ubuntu nvidia驱动后,莫名奇妙的出现:打开各类窗口,发现窗口右上方的最小化、还原、关闭按钮都不见了,整个顶部标题栏都消失了,更改外观主题也没有用。以为是窗口管理器的问题,在网上找了很多方法都不行,最后发现
$ metacity - -replace
就能OK。
待定
$ 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/
注意导入 CA 证书到浏览器中
名称 | 作用 | 是否必选 |
---|---|---|
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托盘窗口所需,其他发行版请自行根据对应系统安装所需软件
需要在安装 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文件夹
$ cd /path/to/goagent/server
$ python uploader.zip
$ 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的路径 使用#提权之后可以自动导入证书,部分浏览器请自行手动导入证书
如果是直接终端使用"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
附上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
/* 全局代理,包括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的操作也是通过代理的了
# apt-get purge vim vim-common vim-runtime
通过UBUNTU源安装的VIM不带有GDB调试功能
# 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
首先我们需要下载VIM的源码,文件名一般为 vim-<version>.tar.bz2
运行以下命令,解压VIM源码,准备编译过程
$ cd /path/to/vim/sources
$ tar jxvf vim-<version>.tar.bz2
$ ./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
缺省的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
编译安装的VIM,需要建立配置文件,在~目录下建立.vimrc文件,建立 .vim 文件夹,包含 plugin, colors, ftplugin 等等
$ vim ~/.vimrc
编辑之后 :wq
保存退出
执行如下命令,就可以把自己编译的VIM,代替以前安装的VIM,以后启动VIM时,就不需要在切换到对应目录下,直接输入VIM,就可以启动自己编译的VIM
/* setup soft link file */
# ln -s <source> <target-gvim74>
# ln -s <source> <target-vim74>
未尽事宜参见 vim_files repository
终端运行 echo $TERM
如果返回 xterm
而非 xterm-256color
则不支持 256色,也可使用脚本 terminalcolors.py
脚本进行检验,详情参见 Scripts repository
在 ~/.bashrc
中添加
if [ "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi
在 ~/.vimrc
中添加
set t_Co=256
# 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
形如 wine-.tar.bz2
$ tar jxvf wine-<version>.tar.bz2
$ cd wine-<version>/
$ ./configure --enable-win64 --prefix=/path/you/want/to/install
$ make
# make install
wine64 --version //检查版本
/* 创建软连接 避免程序不能用 比如 winecfg*/
# ln -s /usr/local/bin/wine64 /usr/local/bin/wine
一般网络连接地址 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
$ chmod +x VMware-Workstation-Full-10.0.2-1744117.x86_64.bundle
# ./VMware-Workstation-Full-10.0.2-1744117.x86_64.bundle
错误提示为
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 //重新加载模块
请至少保留一个旧内核,以免新内核不稳定不兼容造成问题。
# dpkg --get-selections | grep linux
$ uname -a
清除headers不带generic 清除image带generic
# apt-get purge linux-headers-3.0.0-12 linux-image-3.0.0-12-generic
# update-grub
# apt-get install aptitude
# aptitude purge ~ilinux-image-.*\(\!`uname -r`\)
这条命令的作用:删除当前系统没有正在使用的所有内核,一般系统使用的都是最新的内核版本
文件名形如 jre<version>.tar.gz
$ cd /usr/local
# mkdir java
$ cd java
# tar zxvf jre<version>.tar.gz
# 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"
注意保留系统自带变量
$ cd /usr/lib/mozilla/plugins
# ln -s /usr/local/java/jre<version>/lib/amd64/libnpjp2.so
一般来说,有两种情况,一种是自带的,老式使用 ntfs-3g
有的时候会比较慢,像 Ubuntu 12.04 LTS 已经在内核支持 NTFS 的挂载和读写了,但是效能可能不是那么令人满意。第二种是专门专注于这方面的公司,比如 Paragon
, 它在 Android 下的工具比较好用,不过在 Linux 下提供的免费版本 Express
不支持 DKMS 这个动态内核模块的框架,一旦升级内核之后,还要重新编译,如果购买 Professional
版本,还要花费 $39.95 , 对于笔者这样的来说,是一笔巨大的开支,后来研究官方脚本和GitHub上的脚本之后,自己修改了一个可用的Shell脚本,详情参见 Paragon-DKMS repository