文章来源:https://www.codelast.com/

 

本文很杂,主要是记录自己配置Ubuntu的过程中遇到的问题及网上搜到的解决方法。部分内容是网上搜来的,部分内容是自己写的。
另外要注意,本文在逐渐添加内容,期间经历了Ubuntu版本的升级,因此,下面的每一个条目不一定适用于每一个Ubuntu版本。

Ubuntu Desktop版

(1)防火墙。

RHEL下用惯了命令行来配置iptables,Ubuntu下也不想用“新立得软件包管理器”中搜到的gufw(图形界面的Ubuntu防火墙)。于是还是用命令行吧!

ufw是Ubuntu自带的防火墙,默认不开启,开启方法:

sudo ufw enable
sudo ufw default deny

运行以上两条命令后,开启了防火墙,并在系统启 动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

要查看防火墙的状态:

sudo ufw status

开启/禁用防火墙的某个服务:

sudo ufw allow|deny [service]

打开或关闭某个端口,例如:
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则

文章来源:http://www.codelast.com/

(2)从Windows转到Linux后,原来的FAT32、NTFS分区保留了下来,在Linux中,其卷标名怪怪的,例如我的一个NTFS分区卷标名就是类似于 40G 磁盘空间 之类的名字。这样用起来以后维护会很不方便,于是我打算把它们的卷标名改为一个字母,例如原来的NTFS分区是Windows下的D盘,那么我就把卷标名改为“d”,于是这就牵涉到了如何在Linux下更改Windows分区卷标名的问题,答案是网上的一篇文章(我修改、添加了一点内容):

修改Linux分区的卷标可以用 e2label,比如要把/dev/sda1 的卷标改为/boot,则可这样:$ e2label /dev/sda1 /boot

查看Linux分区文件系统卷标
$ e2label /dev/sda1
/boot

在Linux 中如何修改Windows分区的卷标呢?我们要用到两个工 具:
对于 VFAT 文件系统(FAT32格式的分区就是这个),可以使用来自 dosfstools 软件包的 dosfslabel;对于 NTFS 文件系统,可以使用来自 ntfsprogs 软件包的 ntfslabel。
用于VFAT分区,命令用法:

dosfslabel device [label]

例如,要修改vfat分区(FAT16,FAT32均可)卷标:

dosfslabel /dev/sda5 windows

要查看vfat分区卷标

dosfslabel /dev/sda5

用于NTFS分区,命令用法:

ntfslabel device [label]

例如,要修改NTFS分区卷标:

ntfslabel /dev/sda6 xp

要查看NTFS分区卷标:

ntfslabel /dev/sda6

输出:
xp

另外提示一下,要查看有哪些分区,可用命令:fdisk -l

文章来源:http://www.codelast.com/

(3)开机自动挂载Windowns分区。

修改 /etc/fstab 文件,在最后添加几行内容用以挂载Windows分区,注意要区分分区格式(FAT32,NTFS),并且要注意使原来Windows分区里的中文名文件不乱码,可以这样:

/dev/sda5       /mnt/d    ntfs    defaults,iocharset=utf8,umask=0222   0 0
/dev/sda6       /mnt/e    ntfs    defaults,iocharset=utf8,umask=0222   0 0
/dev/sda7       /mnt/f    vfat    defaults,codepage=936,iocharset=utf8 0   0

 

(4)Emacs。

如果你和我一样喜欢用Emacs,那么刚装上之后,很可能没有语法高亮之类的个人设置。基至于想复制一行时,先按Ctrl+Z进入Mark set模式,Emacs都会强行退出,痛苦不已,于是要把自己的Emacs配置文件 .emacs 放置到登录用户的根目录下,就可以了,这里只是提醒一下大家,至于你喜欢用什么样的配置文件,那就随你的意啦。

文章来源:http://www.codelast.com/

(5)“无法获得排它锁”问题。

如果提示这个错误,可以试试:

rm /var/cache/apt/archives/lock
rm /var/lib/dpkg/lock

 

(6)Audacious乱码问题。

Audacious是Linux下的一个强大的音乐播放器,刚装上之后,发现在播放列表中的文件名显示有些是乱码的,解决办法如下(经测试有效): 在audacious上右键选择“首选项”,在“播放列表”中,把标题格式改为“Custom”,再把自定格式改为
“%f”(不要引号)。 这样必然不会出现乱码(除非你给歌起个乱码名) 。

 

(7)类似于Windows下的Total Commander的文件管理器。

Linux下有很多选择,例如Krusader,muCommmander,GNOME Commander等。

Krusader是一个相当强大的“类TC”工具(基于KDE的),功能多多,喜欢大而全的功能的你一定不会失望(据网上的某些文章说,它可能是此类软件中功能最多的那个了)。安装:

sudo apt-get install krusader

使用Krusader时,有几个特别有用但是需要稍微配置一下才能work的地方:
a) 在当前目录下打开终端/terminal
按F2可以快速打开终端,并且已经cd到当前目录下了。但是你第一次使用Krusader时,按F2会弹出一个错误提示:
konsole --workdir %d!
其实,你只要安装了Konsole这个终端软件,就OK了:

sudo apt-get install konsole

但是这个Konsole终端软件可能和你平常用的Gnome Terminal不一样,终端里的默认配色不同(当然你可以改成一样的)。假设你用惯了Gnome Terminal的话,你可以把Krusader的F2键调用的程序改为Gnome Terminal:
设置→配置Krusader→常规 中,“终端”文本框里的“konsole --workdir %d”改为:

gnome-terminal --working-directory %d

然后再按F2键试试?马上会调出熟悉的Gnome Terminal了。

 

(8)无法升级软件包,发现代理服务器莫名地被设置了:

“系统”→“系统管理器”→“更新管理器”来升级Ubuntu的软件包,结果输出一堆错误,一看,都是“不能连接到192.168.XXX.XXX ……”这样的错误,分明是设置了代理服务器,却又无法连接代理服务器造成的。

export命令一查看,竟然发现输出内容里有类似于下面的环境变量设置:

declare -x http_proxy="http://192.168.XXX.XXX:8080/"

回想起来可能是浏览器在打开的时候设置了代理,就自动修改了这玩意,自己却没有注意到,于是产生了此问题。

这个时候,你可以手动删除这个环境变量:

unset http_proxy

然后注销,重新登录后再用export命令看一下,刚才的环境变量是不是没了?问题解决。
补充:如果要在命令行设置socks5代理,可以用类似于下面的命令:

export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080

或者干脆设置所有代理:

export ALL_PROXY=socks5://127.0.0.1:1080


(9)向Chrome导入自定义的证书

先安装libnss3-tools:

sudo apt-get install libnss3-tools

然后再导入证书(这里假设证书CA.crt位于/usr/local/xxx/CA.crt)

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n MyCerName -i '/usr/local/xxx/CA.crt'

文章来源:http://www.codelast.com/

(10)安装KeePass
KeePass是一款超牛的跨平台的(目前已经支持包括各大移动平台在内的N个操作系统)开源密码管理软件,不仅免费,而且安全性超强,它绝对是目前世界上最优秀的软件之一。你只需要记住一个管理密码,就可以不用去背你所有帐号的密码了。安装KeePass很简单:

sudo apt-get install keepass2

然后,你就只需要在里面新建一个用于保存密码的文件(如果你是刚开始用的话),或者把你在其他平台(例如Windows)上的KeePass里的那个密码文件复制到Ubuntu里,然后在KeepPass中打开就可以了。
还有一个工作:让软件显示中文界面。到KeePass官网下载2.x版本的Simplified Chinese语言文件(是个zip压缩包),然后解压出来一个文件SimplifiedChinese.lngx,把它放到你的用户根目录下(例如/home/abc/)的 
.local/share/KeePass 子目录下(注意最后一级的 KeePass 目录如果不存在的话,就自己手工创建),再重新打开KeePass软件,即可在"View"-"Change Language“菜单里看到中文的选项了。
不过,就算你安装了中文语言包,有可能发现界面文字还是乱码的(太痛苦了,我就遇到了这样的情况)。有一种说法是把KeePass中的字体设置成支持中文的字体,有可能能解决乱码问题(我的没解决),如果解决不了,可以试试下面的方法,我通过这种方法解决了乱码的问题:将一个字体配置文件的软链接删除(此处是重命名,和删除是一样的效果):

sudo mv /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak

然后,打开KeePass,会发现界面文字已经神奇地不乱码了!
但是别高兴得太早!如果你的密码库文件是从别的地方拷贝过来,在Ubuntu上打开的,并且里面的密码项目也含有中文,那么这里面的中文还是乱码的,就算KeePass的界面变成了中文也没用。这时,你需要在KeePass的“工具”-“选项”-“外观”(Interface)中,“选择列表字体“和”选择密码字体“里,都选择一个支持中文的字体(例如我选择的是“文泉驿等宽微米黑”),保存设置之后,就发现乱码问题彻底解决了!

2017.09.30更新:
发现一个新问题,在Ubuntu 16.04 LTS系统下,上面所说的“选择密码字体”(Select Password Font)按钮是灰色的,不可点击,在这种情况下,密码对话框里的中文仍然是乱码的,这时你可以在“工具”-“选项”-“外观”(Interface)中,把“强制使用系统字体(仅Unix下)”选项前的勾去掉,再重新打开Keepass,就会看到中文已经可以正常显示了。

(11)Ubuntu系统的软件包升级
命令很简单:

sudo apt-get upgrade

然后输入 Yes 继续即可。

(12)Ubuntu下使用VMware虚拟机
只要把Windows下的虚拟机文件(一个虚拟机是一个目录,里面有一堆文件)拷贝到Linux下,就可以用了,迁移成本非常小。但是在启动VMware 9的时候,它需要先做一些编译工作,前提是你的Ubuntu已经安装了一些依赖库,例如,遇到错误提示“
kernel headers for version 3.5.0-23-generic were not found”时,就要安装下面这个(如果没装就会提示找不到):

sudo apt-get install linux-headers-3.5.0-23-generic

文章来源:http://www.codelast.com/
(13)IntelliJ无法启动,Unrecognized VM option '+UseCodeCacheFlushing' 的解决办法
找到IntelliJ的bin目录下的如下两个文件,把文件中含有 UseCodeCacheFlushing 的那一行删除即可:

idea64.vmoptions
idea.vmoptions

(14)Wine的C盘目录在哪里
如果你安装了Wine这个软件,那么,你可能经常需要到“C盘”目录下去操作,那么,这个对应的C盘在Linux系统的哪个目录下呢?就在你安装Wine的用户的根目录下的这个子目录下:

./.wine/drive_c/

你没看错,是一个隐藏的目录。

(15)自己编译安装1.6.20版的subversion
在apt-get install之前,最好查看一下即将安装的subversion是不是要你的版本:

[dz@ ~]$ apt-cache show subversion
Package: subversion
Priority: optional
Section: devel
Installed-Size: 1056
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Peter Samuelson <peter@p12n.org>
Architecture: amd64
Version: 1.7.5-1ubuntu2
Depends: libsvn1 (= 1.7.5-1ubuntu2), libapr1 (>= 1.2.7), libc6 (>= 2.4), libsasl2-2 (>= 2.1.24)
Suggests: subversion-tools, db5.1-util, patch
Filename: pool/main/s/subversion/subversion_1.7.5-1ubuntu2_amd64.deb
Size: 283762
MD5sum: 74ede886f465088f917a7c7841f02658
SHA1: b0f791f05816091e814026ee2487340d1f4daf7d
SHA256: 650844ab0d9ab9c92ab11ab86b2bb5e27ba2aea304a1d47a1e96ac9fb178d532
Description-en: Advanced version control system
 Apache Subversion, also known as svn, is a centralised version control
 system.  Version control systems allow many individuals (who may be
 distributed geographically) to collaborate on a set of files (source
 code, websites, etc).  Subversion began with a CVS paradigm and
 supports all the major features of CVS, but has evolved to support
 many features that CVS users often wish they had.
 .
 This package includes the Subversion client (svn), repository
 administration tools (svnadmin, svnlook) and a network server (svnserve).
Homepage: http://subversion.apache.org/
Description-md5: 9fa4bc531e7ceb09fda8950bea636958
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 18m

可见,apt-get install安装上的将是1.7.5版本的subversion,我记得对开源项目Review Board的某个版本,1.7版本是不兼容的(非常烦人),所以你要安装低版本的话,就要自己编译安装subversion。
在 configure 的时候可能会遇到找不到几个软件包的错误提示:

configure: error: no suitable apr found
configure: error: no suitable APRUTIL found

这样的话,你就要先手动安装这些包了,这两个package分别用以下的命令来安装:

apt-get install libapr1-dev
sudo apt-get install libaprutil1-dev

这样,就可以顺利地 configure,make 了。
如果在使用SVN命令的时候,提示错误“无法识别的URL方案”,那么可能是没有安装subversion-deps包导致的,你需要到subversion的网站上下载对应版本的subversion-deps包,解压到与subversion同一目录下,重新configure,make,make install。

文章来源:http://www.codelast.com/
(16)自己指定登录服务器使用的私钥文件
如果你是从Windows下拷贝来的私钥文件Identity,想在Ubuntu上用于登录其他的服务器,那么,需要做以下几件事情:

cd
mkdir .ssh
chmod 700 .ssh
cd .ssh
cp your_identity_file ./identity
chmod 600 identity

如果在你的用户的home目录下已经有.ssh目录了,那么你就不需要mkdir了,后面有几个命令是用于保证目录和文件的权限正确。
然后修改系统文件 /etc/ssh/ssh_config,找到下面这句话,把它的注释取消掉(即去掉#号):

#   IdentityFile ~/.ssh/identity

这样就可以通过私钥来ssh登录远程服务器啦。如果你不注释掉这句话,那么ssh连接服务器的时候,会失败并提示“Permission denied (publickey).
但是,如果你输入是以下命令:

ssh abc.server.com

那么,它会默认用你当前用户名来登录,如果你登录的用户名不是你当前用户名,你就要自己指定了:

ssh codelast@abc.server.com

但是这样不是很烦吗?每次都要输入一个同样的用户名,累死了。其实可以在ssh_config配置文件中指定一个默认的用户名,修改 /etc/ssh/ssh_config 文件,添加下面这行:

    User codelast

这样就会默认以 codelast 用户来登录了。
文章来源:http://www.codelast.com/
(17)编译安装Boost时提示“bzlib.h: No such file or directory”错误的解决办法
安装以下三个包即可解决:

sudo apt-get install python-dev
sudo apt-get install python-bzutils
sudo apt-get install libbz2-dev

(18)启用Chrome的Flash插件
首先你要搞清楚,你使用的到底是Chrome浏览器还是Chromium浏览器,具体的区别请移步Google查询。
我这里说的是针对Chrome浏览器的解决方案。
按Adobe的说法:

如果您使用的是 Google Chrome 浏览器,则浏览器中已内置 Adobe® Flash® Player,但是该 Flash Player 会处于禁用状态。

因此,我们不需要安装Flash插件了,只需要做一些设置即可。具体的设置方法在这里,我来简单地说一下:
在Chrome浏览器的地址栏里输入:

chrome://plugins/

回车进入插件配置界面,你会看到一个名为“libpepflashplayer”和一个名为“Adobe Flash Player”的插件,把前一个插件下方的“始终允许”的复选框勾上,然后点击页面右上方的“详细信息”,在展开的详细信息中,找到Adobe Flash Player”插件的详细信息处,会发现有两个子项,都叫“Shockwave Flash”,并且两个都是启用的状态。其中有一个的“位置”是以 /usr/lib 开头的,另一个不是,现在不要动那个以 /usr/lib 开头的子项,把另一个“停用”掉,然后重启浏览器,就会发现可以播放页面中的Flash视频了。

2017.05.31更新:Chrome 58已经移除了 chrome://plugins/ 设置界面,如果Flash被禁用了(例如,打不开腾讯街景地图),有一个我试了可行的办法是:在地址栏输入 chrome://flags/#run-all-flash-in-allow-mode,并选择“已启用”,就可以启用Flash插件了。
文章来源:http://www.codelast.com/
(19)安装极点五笔
Windows下的极点五笔堪称最好的五笔输入法之一。在Ubuntu下没有它怎么行?

sudo wget http://www.unicom-china.com/download/vissible-ibus.tar.gz
tar -zxf vissible-ibus.tar.gz
sudo cp vissible.db /usr/share/ibus-table/tables
sudo cp vissible.gif /usr/share/ibus-table/icons

然后点击任务栏右上方的键盘图标→点击“重新启动”→稍等片刻之后再点击键盘图标→点击“首选项”→点击“输入法”选项卡→点击“选择输入法”→选择“汉语”下的“极点五笔”→点击“添加”按钮。最后再点击“向上”,把添加的极点五笔输入法移动到最上方,就大功告成了。

(20)查看WiFi芯片的型号

sudo lspci -vnn | grep 14e4

输出类似于:
05:02.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)

4318就是芯片型号。

(21)切换工作区/桌面的快捷键
Ubuntu默认有4个工作区(桌面),切换到不同的工作区可以用 Ctrl+Alt+方向键 来切换。

文章来源:http://www.codelast.com/
(22)Ubuntu下好用的计算器软件

sudo apt-get install speedcrunch
sudo apt-get install qalculate

这两个软件都不错,各有优缺点。

(23)如何将Windows下的SQLyog保存的账号登录配置移植到Ubuntu下
在Ubuntu下可以通过Wine安装Windows版的SQLyog,先安装Wine:

sudo apt-get install wine

然后找到SQLyog的安装文件,右键点之→打开方式→Wine Windows Program Loader,然后就可以像Windows下的SQLyog安装过程一样安装它了。安装完之后,我们如何把Windows下的SQLyog登录各服务器的账号信息导出,并导入到Ubuntu下的SQLyog中呢?
首先按此文章的第21条,找到Windows下的SQLyog的sqlyog.ini文件,然后把它放到Ubuntu的如下目录中:

~/.wine/drive_c/users/XXX/Application Data/SQLyog/sqlyog.ini

其中,XXX 是你的Ubuntu用户名。这样做好之后,你再打开Ubuntu下的SQLyog,就可以看到登录账号已经恢复啦。

(24)两台Ubuntu计算机利用Synergy共享鼠标和键盘
参考此文章

(25)磁盘管理工具
推荐安装GParted,有图形化界面,非常强大:

sudo apt-get install gparted

(26)安装图形化的MySQL客户端工具

sudo apt-get install mysql-workbench

(27)图形化的diff工具(用来代替diff极好)

sudo apt-get install meld

(28)屏蔽Ubuntu的Alt键
有没有觉得在疯狂打字的时候经常不小心触碰到左边的Alt键,导致弹出Ubuntu的搜索条?要关掉这个讨厌的功能,可以通过修改系统快捷键的方法来实现。在“系统设置”→“键盘”→“快捷键”→“启动器”中,将“用于显示HUD的键”修改掉即可。修改方法是:点击一下“用于显示HUD的键”右边的快捷键名称,然后直接用键盘输入新的快捷键,例如,我把这个快捷键改为右Alt,只需要按一下右Alt即可。

文章来源:http://www.codelast.com/
(29)Ubuntu 12.10下安装Python 3.3
在新安装的Ubuntu 12.10系统下,用apt-get install python安装上的Python,版本仍然是2.7。如果要安装3.3,可遵循以下步骤:

sudo apt-get build-dep python3.2
sudo apt-get install libreadline-dev libncurses5-dev libssl1.0.0 tk8.5-dev zlib1g-dev liblzma-dev

wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz

tar xvfz Python-3.3.0.tgz

cd Python-3.3.0
./configure --prefix=/opt/python3.3
make  
sudo make install

cd /usr/bin
sudo rm -f python
sudo ln -s /opt/python3.3/bin/python3.3 python

可见,按上面的步骤操作,Python 3.3被安装到了/opt/python3.3/ 目录下。最后我们做的是把python命令的软链接指向新安装的Python 3.3。

(30)打开IBus配置界面 & IBus图标在桌面右上角不显示的解决办法
直接用下面的命令:

ibus-setup

如果看到是下面的错误:

  File "/usr/share/ibus/setup/main.py", line 443
    except Exception, e:
                    ^
SyntaxError: invalid syntax

那么有可能是你系统上的Python版本不对导致的。例如我把 /usr/bin/python 指向了我自己安装的Python 3.3,导致了上面的错误,恢复到Python 2.7之后,就解决了问题。

当任务栏里的IBus图标丢失时,你可以通过重启IBus来找回:

sudo killall ibus-daemon
sudo ibus-daemon -d
ibus-setup

这时会弹出一个对话框,大致意思是说,IBus尚未启动,你是否要启动它,选择Yes即可。
文章来源:http://www.codelast.com/
(31)退出终端/Terminal的全屏状态
在使用Ubuntu终端(Terminal)的时候,不知道按了什么快捷键,导致Terminal进入了全屏状态,通过试验,我发现按 Ctrl+Alt+F11 可以退出全屏,至少在我的PC上是有用的。

(32)安装STIX字体
STIX字体对MathJax非常有用,在Ubuntu上安装它只要一条命令就可以搞定:

sudo apt-get install fonts-stix

(33)安装CAD软件
Ubuntu下确实有非常好的CAD软件,虽然没有AutoCAD那么流行,但是已经非常不错了,例如QCADLibreCAD等等。在这里要推荐LibreCAD,它不仅开源、跨平台(Windows,Linux,Mac),而且国际化做得非常好(支持的语言极多)。
安装LibreCAD:

sudo apt-get install librecad

(34)让Ubuntu的文件浏览器显示地址栏
直接按Ctrl+L即可显示。

(35)安装强大的音频处理软件Audacity
Audacity是开源、免费的强大的音频处理软件,可用于代替Adobe Audition的大部分功能,并且它是跨平台的(Windows,Linux,Mac),实在太牛了。安装方法很简单:

sudo apt-get install audacity

(36)Ubuntu下的极点五笔突然只能输入单字(进入了单字模式)的问题
这个问题,是因为极点五笔有单字输入模式,而你不小心按了你不知道的快捷键,导致进入了单字模式。你能想像进入了单字模式却又不知道为什么也找不到原因并且重启也没用之后有多恶心吗?我就被恶心了一把,后来自己试出来了解决办法:按 Ctrl+, 组合键,就可以切换到正常的词组输入模式了!

文章来源:http://www.codelast.com/
(37)用deb包安装Chrome时需要先安装libxss1的问题
例如,我下载了 google-chrome-stable_current_amd64.deb 这个安装包,然后安装:

sudo dpkg -i google-chrome-stable_current_amd64.deb

提示错误:

正在解压缩 google-chrome-stable (从 google-chrome-stable_current_amd64.deb) ...
dpkg: dependency problems prevent configuration of google-chrome-stable:
 google-chrome-stable 依赖于 libxss1;然而:
  未安装软件包 libxss1。

所以要先安装:

sudo apt-get install libxss1

(38)Ubuntu默认安装后 ll 命令显示隐藏文件的禁用
我非常不习惯 ll 命令显示隐藏文件,因此要修改掉。打开你的用户根目录下的 .bashrc 文件,找到这一行:

alias ll='ls -alF'

注释掉并加上一行:

alias ll='ls -lF'

反正只要去掉 -a 参数就可以了。
修改好之后注销重新登录或重启系统。

(39)CEDET的安装及基本配置
教程见这个链接
为什么要记下这个无聊的过程呢?这是因为某一天,我把一台Ubuntu计算机上的 ~/.emacs.d/cedet 目录拷贝到另一台Ubuntu计算机上,虽然它们同为Ubuntu 12.10,但是不知道为什么,拷贝过去的文件不能用,emacs启动时总会报一个和CEDET有关的错误。于是我要在新的机器上重新安装CEDET。
这里我就把上面链接里的教程简单地重复一遍:
到CEDET的sourceforge主页里下载回它的tar包,例如我下载的是cedet-1.1.tar.gz,解压,进入解压出来的目录,编译CEDET:

make EMACS=emacs

结束后,回到上一级目录,把整个目录拷贝到 ~/.emacs.d/ 目录下,然后就可以去配置 .emacs 文件了。至于在 .emacs 文件中如何配置CEDET,这里就不详述了。
文章来源:http://www.codelast.com/
(40)Ubuntu 12.10安装libcurl开发包

sudo apt-get install libcurl3
sudo apt-get install libcurl4-openssl-dev

(41)终端(terminal)下,命令前不显示完整路径,而只是显示当前所在的目录名
当你cd到一个很深的目录时,例如 /home/codelast/my-code/test/1/ ,那么,如果在terminal中显示的是完整路径,例如:

codelast@localhost:~/my-code/test/1/$

这样就会很难看,有时甚至这个长长的路径会把屏幕的一行都占完(反正我是无法忍受),所以我要改成只显示当前目录名,方法是编辑当前用户根目录下的 .bashrc 文件,找到以下代码:
bashrc
也就是说把PS那一行改掉(这里我是注释掉了原来的代码,并没有删掉)。然后再打开新的terminal面板,cd到相同的目录下,发现会变成这样了:

[codelast@ 1]$

这样多简洁!

(42)安装VirtualBox并安装虚拟机
我是64-bit的Ubuntu 12.10,从VirtualBox官网上下载deb安装包后,安装:

sudo dpkg -i virtualbox-4.3_4.3.6-91406~Ubuntu~quantal_amd64.deb

然后启动软件,新建虚拟机,指定光驱使用某iso文件来准备安装系统,正以为一切顺利的时候,一点虚拟机的启动按钮立即报错,错误对话框中提示要以root用户执行以下命令:/etc/init.d/vboxdrv setup

于是执行,又报错:
Stopping VirtualBox kernel modules ...done.
Recompiling VirtualBox kernel modules ...failed!
  (Look at /var/log/vbox-install.log to find out what went wrong)
于是按提示,去看/var/log/vbox-install.log文件,有错误信息:
Makefile:183: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.
问Google,找到以下方法(以root用户执行):

sudo apt-get install dkms build-essential linux-headers-generic
/etc/init.d/vboxdrv setup
果然work了,提示信息如下:
Stopping VirtualBox kernel modules ...done.
Uninstalling old VirtualBox DKMS kernel modules ...done.
Trying to register the VirtualBox kernel modules using DKMS ...done.
Starting VirtualBox kernel modules ...done.

再启动虚拟机,OK了。
文章来源:http://www.codelast.com/
(43)安装TeamViewer,用Android设备来操纵Ubuntu的桌面
TeamView这货实在太牛了,你可以在Ubuntu、Android上分别安装相应的版本,然后用Android设备来操纵Ubuntu的桌面(当然,这样确实不方便,但有时候为了远程解决问题,这是个好办法)。
在Ubuntu下安装TeamViewer可以直接用 sudo apt-get install teamviewer 来安装,但如果你下载的是官方的deb安装包,那么你 sudo dpkg -i 安装的时候可能会提示几个依赖包缺失的问题,因此你要先安装它们:

sudo apt-get install libc6-i386 lib32asound2 lib32z1

然后再安装deb包就OK了(当然,这可能这只是我遇到的问题的特例)。

(44)在 快速启动列表/快速启动器/Dash主页 中添加一个自定义程序的书法
Ubuntu左上角有一个快速启动器(Dash主页),如果你没有更改过它的快捷键的话,那么就是Alt键激活它,如果我们自己安装了一个程序后,这个程序在Dash主页中没有,那么你可以手动添加上。以我添加Sublime这个程序的快捷启动为例:

cd /usr/share/applications
sudo vim Sublime.desktop

其中,Sublime.desktop文件是新建的文件,里面的内容用于配置启动程序的信息,该文件名应该是 xxx.desktop 的形式,xxx你可以自定。
然后在文件里填上:

Version=1.0
Name=Sublime Text
Exec=/usr/bin/sublime
Terminal=false
Icon=/opt/sublime/Icon/128x128/sublime_text.png
Type=Application
Categories=Development

其中,Name项显示的是Dash主页中显示的程序名,Exec项填的是启动程序的路径,Icon项填的是程序图标路径,它将显示在Dash主页中。
添加好后就OK了。

(45)删除自己添加过的软件源
如果你添加过PPA(
Personal Package Archives for Ubuntu),那么如果它失效了,你再使用Ubuntu的“软件更新器”来检查软件更新的时候,可能会看到PPA无法访问相关的错误提示,这个时候你需要把它们删掉。方法很简单,进入目录 /etc/apt/sources.list.d/,把对应的文件删掉就可以了。

(46)不想用nohup也能后台执行程序?screen来帮你
如果你ssh连上了一台服务器(本机也好,远程也好),长时间没有操作的话,可能会使你的ssh连接断开,为了防止运行时间很长的程序不会由于ssh中断而被干掉,我们通常会用nohup来执行程序,但是还有其他的选择吗?有,那就是在服务器上用screen来操作。
Ubuntu默认应该是没有安装screen程序的,首先安装它:

sudo apt-get install screen

假设我们要启动的程序是一个脚本,例如 a.sh,前台运行它的话,我们用 ./a.sh,后台运行它的话,我们通常用 nohup ./a.sh &,如果用screen来代替nohup,应该是这样的:

screen

这会进入一个新的窗口,在这个窗口中,以前台运行的方式启动这个程序:

./a.sh

程序就运行起来了,然后我们再按 Ctrl+ad 键(先按Ctrl+a,再按d键)回到之前的终端中。这样,程序就已经在后台运行起来啦!此时,它已经相当于用nohup运行起来的效果了。
如果要结束这个程序,怎么办?我们可以回到之前创建的screen会话中,把程序中止掉。先列出之前创建的screen会话:

screen -ls

文章来源:http://www.codelast.com/
结果类似于下面这样:

There is a screen on:
	4004.pts-2.codelast	(2014年02月22日 17时01分48秒)	(Detached)
1 Socket in /var/run/screen/S-z.

其中,4004.pts-2.codelast 就是前面创建的session的标识,如果创建了多个,这里都会列出来。
然后恢复指定的session:

screen -r 4004.pts-2.codelast

经试验,如果你只写“4004”,或者你不写“4004.”(即 screen -r pts-2.codelast)也可以。
这样马上就会回到创建的session中,在里面,按 Ctrl+c 即可结束程序,同时也结束了该screen session。
如何强制杀掉一个session?如下:

screen -S [sessionname] -p 0 -X quit

其中,[sessionname]是类似于“4004.pts-2.codelast”这样的名字。

(47)VirtualBox中的虚拟机设置成有独立IP地址
在虚拟机的“网络”设置界面中,“连接方式”选择“桥接网卡”,“混杂模式”选择“全部允许”(其他的行不行我没有试),然后重启虚拟机即可使虚拟机有独立的IP地址(不同于host IP)。

(48)启动某软件时提示“Load Crypto.Cipher.ARC4 Failed, Use Pure Python Instead.”错误的解决办法
安装如下包:

sudo apt-get install python-crypto

(49)如何将旧机器上的Thunderbird配置及数据恢复到新机器上
要知道,配置Thunderbird也是件麻烦的事情,更何况Thunderbird要把无数的邮件同步到本地,这些数据也是很大的,如果你在新机器上刚安装好Thunderbird,毫无疑问应该把旧机器上的配置及数据同步过来。方法是:将旧机器上的 ~/
.thunderbird 目录下的“profiles.ini”文件以及一个名字很怪的目录(例如“y88yf66x.default”)拷贝到你新机器上的相同目录下,重启Thunderbird即可。

(50)Ubuntu下好用的视频编辑软件
要数Linux下的视频编辑软件,那是相当地多,例如AvidemuxOpenShot,等等。
我就装了上面两个:

sudo apt-get install avidemux
sudo apt-get install openshot libavformat-extra-53

其中,libavformat-extra-53是OpenShot软件在将视频保存为MP4(h.264)格式时依赖的软件包,所以要安装(除非你不把视频导出为这种格式)。
我只试用了其中一个——OpenShot,具体教程请看这里

(51)安装ssh server,使得别的服务器可以ssh连接本机
Ubuntu默认安装后是不能从别的服务器ssh连接的,因为少一些东西:

sudo apt-get install openssh-server
sudo /etc/init.d/ssh restart

(52)Ubuntu下的光盘刻录软件
Ubuntu默认安装后,就带有一个刻录软件,简单好用,名字叫Brasero

文章来源:http://www.codelast.com/
(53)rsync同步本机上的两个目录
备份文件的话,rsync最方便了:

rsync -vzrtopgu -progress src_dir/ dest_dir/

其中,src_dir 是源目录,dest_dir是目标目录。两个目录后都要带/,这样会把目录里的所有文件及子目录都同步到目录目录下。

(54)Emacs启动时报错“Wrong type argument: stringp”的解决办法

错误信息如下:
Warning (initialization): An error occurred while loading `/home/codelast/.emacs':
 
Wrong type argument: stringp, 1
 
To ensure normal operation, you should investigate and remove the
cause of the error in your initialization file.  Start Emacs with
the `--debug-init' option to view a complete error backtrace.
此错误有可能有多种原因,我遇到的问题是:没有安装g++。安装即可:
sudo apt-get install g++

(55)隐藏iBus的输入条(property panel/属性面板)

如果你切换成中文输入法时,光标点到哪里,哪里就出现一个恶心的输入条(上面有切换简繁体等按钮),那么可以用以下方法隐藏它:命令行输入
ibus-setup
在对话框中的“Show property panel”列表框中,选择“Do not show”即可。

(56)apt-get install安装BDB/How to apt-get install BDB(Berkeley DB)

apt-cache search libdb | grep Berkeley

从列表中找到合适的版本并安装,例如:

sudo apt-get install libdb5.1 libdb5.1-dev

(57)配置Ubuntu开机自动连接蓝牙鼠标
Ubuntu连接蓝牙鼠标非常简单,难的是这货竟然没有一个图形化的界面可以让你勾选一下(或者干脆默认)就可以开机自动连接蓝牙鼠标,你见过谁开机之后鼠标竟然不能连接,还要通过其他的操作才能让鼠标“活”过来的么?这种事情就别提有多恶心了...
相比之下,Windows这种满天下都是的系统就没这个问题,唉,一声叹息,很多设备都不考虑Linux用户的感受啊...
这里就说一下让Ubuntu开机自动连接蓝牙鼠标的方法。
首先,可以用另一个非蓝牙鼠标辅助一下,让你的蓝牙鼠标连接上Ubuntu一次,并在鼠标设置界面中记下它的蓝牙设备地址。
安装几个软件:

sudo apt-get install bluez-utils bluez-compat

修改文件,开机执行几个命令:

sudo vi /etc/rc.local

在最后一行“exit 0”之前添加几行:

/usr/bin/hidd --server
/usr/bin/connect-bluetooth-mouse.sh

这里有一个我自己写的脚本 connect-bluetooth-mouse.sh,用于连接蓝牙鼠标,内容如下:

#!/bin/bash

while true
do
  # connect to the Bluetooth mouse 
  /usr/bin/hidd --connect 0A:2E:30:10:50:02

  if [ $? -eq 0 ]; then
    break
  fi
done

基本上就是循环不断地去尝试连接鼠标,注意,里面的 0A:2E:30:10:50:02 是我的蓝牙鼠标地址,你需要修改成你的。
这样设置之后,重启系统,经过我的测试,还是有缺陷的,在于:鼠标有可能会进入休眠状态(不同品牌、型号的鼠标表现可能不同),此时,尽管Ubuntu执行了开机连接蓝牙鼠标的动作,但是却由于鼠标休眠了而连不上,导致最终进了系统还是连不上(不知道为什么,脚本是在连接失败的情况下无限循环执行的也不行)。所以,你需要做的是,在开机的过程中,不断地按鼠标上的“connect”键(一般都有这个键),或者不断地开、关鼠标的电源,让鼠标进入活跃的状态,这时Ubuntu就可以和它连接成功了。我连试了几次都OK。
虽然这个方法还是有点挫,不过终于可以不用在进系统之后再执行其他命令来辅助连接鼠标了!
最后,大家可以参考一下这个链接

(58)Ubuntu下很好用的视频格式转换软件
不用多说,安装HandBrake吧:

sudo apt-get install handbrake

文章来源:http://www.codelast.com/
(59)Ubuntu下的epub格式(电子书)阅读软件
Calibre是个不错的选择:

sudo apt-get install calibre calibre-bin

(60)Vim语法高亮
如果安装好Vim后,发现它对代码文件没有语法高亮(例如,shell脚本),那么可以用下面这个简单的方法来打开语法高亮:
编辑 ~/.vimrc 文件,在里面填上下面的内容:

if &t_Co > 1
   syntax enable
endif

然后再用Vim打开一个代码文件,就发现已经有语法高亮功能了。

(61)Ubuntu上的摄像头软件
已经预装好了,叫“cheese”,中文名是“茄子大头贴”。如果你的系统上没有,就用如下命令安装:

sudo apt-get install cheese

(62)launcher项的保存位置
Ubuntu的启动项(desktop entry)是以文件的形式存储在磁盘上的,具体位置就是:
仅对当前用户有效的:

~/.local/share/applications

对所有用户都有效的:

/usr/share/applications/

(63)Ubuntu上安装Numix主题
Numix主题实在是太赏心悦目了,以至于每次安装一台Ubuntu新机时不得不安装它:)
先安装
Gnome Tweak Tool

sudo apt-get install gnome-tweak-tool

然后:

sudo apt-add-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-icon-theme-circle

最后在打开安装好的Gnome Tweak Tool中,“Icons”选项里选择刚安装好的Numix图标,立即会发现整个系统的图标都变了。

(64)安装有道词典Ubuntu版
如果用 sudo dpkg -i xxx.deb 安装有道词典时出错提示某些依赖的package没有安装的话,那么可以用以下命令来安装所有依赖项(完成之后,有道词典也装上了):

sudo apt-get -f install

文章来源:http://www.codelast.com/
(65)Ubuntu下好用的看图软件

sudo apt-get install gwenview

2018.01.01更新:
在Ubuntu 16.04.3 系统下,如果使用Gwenview时,发现无法用上下左右键切换浏览同一目录下的图片,并且在Gwenview主界面里选择本地磁盘浏览时提示“URL cannot be listed”(就像是本地磁盘路径不存在一样),那么这个应该是Gwenview的bug,此时你可以通过一个workaround来解决此问题:

sudo apt-get install kinit kio kio-extras kded5 kinfocenter

我的PC上实测OK。

(66)Ubuntu下新创建的用户无法登录图形界面的问题
在Ubuntu下用useradd新建了一个用户,并设置了该用户的密码,然后切换用户登录,发现在密码输对的情况下,一回车,屏幕只是闪了一下,又回到了登录界面——根本登录不进去。
问了Google,原来是这样创建的用户没有在/home/目录下创建对应的目录,因此无法登录。
应该使用adduser命令并跟随其向导来创建用户,这样就OK了。

(67)Ubuntu下的极点五笔切换中英文标点的快捷键
Ctrl+.

(68)VirtualBox 5.0.8在Ubuntu系统升级后无法启动的问题
在Ubuntu系统(14.04 LTS)升级之后,VirtualBox 5.0.8无法启动,提示要以root权限行 /sbin/vboxconfig 命令(或
sudo /sbin/rcvboxdrv setup命令,依VirtualBox版本不同而不同),但是执行这个命令的结果却是failed,在这种情况下,应以root权限运行以下命令,方可解决问题:

sudo /usr/lib/virtualbox/vboxdrv.sh setup

(69)Ubuntu上安装L2TP VPN的客户端
Ubuntu默认不支持创建L2TP VPN连接,因此,需要自己配置:

1. 添加PPA
sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
2. 刷新软件包缓存
sudo apt-get update
3. 安装network-manager-l2tp
sudo apt-get install network-manager-l2tp-gnome
安装完后需运行以下命令:
sudo service xl2tpd stop
sudo update-rc.d xl2tpd disable
4. 重启系统,在系统的添加VPN连接对话框中即可看见L2TP选项

(70)Ubuntu上安装scikit-learn
安装依赖:

sudo apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev libatlas3-base

安装scikit-learn(前提是你已经安装过了pip):

sudo pip2 install -U scikit-learn

(71)VIM配置实时搜索/即时搜索
默认情况下,在VIM中搜索一个字符串时,要按回车后才开始搜索,我感觉这没有Emacs默认的“实时搜索”好用,所以,可以对VIM配置一下,让它在输入字符串的同时就开始搜索匹配上的部分。
Ubuntu下,个人用户的home目录下可能没有.vimrc配置文件,那么可以修改系统级的配置文件
/etc/vim/vimrc,在里面添加上这几行内容:

"实时搜索
set incsearch
"搜索高亮显示
set hlsearch
"如果输入小写字母搜索,不区分大小写;输入大写字母则只按大写搜索
set ignorecase smartcase
然后就OK了。

(72)Chrome 54.0.2840.71 (64-bit)版本的浏览器打开Flash播放器的网页时提示“Adobe Flash版本太旧”,从而无法显示flash的问题
折腾了好久才搞好,网页也搜了一堆,总算找到一个(对我)可行的办法:

  • 首先我在 chrome://plugins 页面中看到我的Flash已经是最新版了——23.0.0.185,并且已经启用
  • 在 chrome://components 页面中,我看到我的Flash版本是0.0.0.0,也就是有问题的!!在下面有一个“检查是否有更新”按钮,你可以利用这个功能来更新Flash到最新版
  • 然而在天朝,大多数人点了这个按钮并没有用,因为这个更新功能需要爬梯子才能用,不信你可以试一下,在没有爬梯的情况下,点了按钮之后无论你等多久都没有用。并且,这个功能,不受代理插件控制,所以,你不要以为你用SwitchyOmega插件把页面设置成了通过代理访问就可以用了,依然无效!
  • 解决办法就是在启动Chrome的时候,加上你的代理地址来启动,例如 google-chrome --proxy-server="socks5://127.0.0.1:1080"
  • 在用代理启动的Chrome中,访问 chrome://components,在里面使用Adobe Flash Player的更新功能,就可以看到更新过程中的状态变化了(例如downloading,updated,等等),然后再重启Chrome(这回不使用代理启动),就可以发现 chrome://components 中的Flash版本已经变成最新版了(和 chrome://plugins 页面中显示的一样)
  • 访问一个含有Flash的网页试一下,成功!

(73)Ubuntu 16.10,在Fcitx框架下安装五笔输入法

sudo apt-get install fcitx-table fcitx-table-wubi fcitx-table-wbpy

(74)在Google表格中插入一条斜线
如果想要在单元格内插入一条斜线,可以在这个单元格内使用如下函数:

=SPARKLINE({2,1})

可以在最左上角的单元格内输入这个公式试一下,效果立现。

(75)如何在Ubuntu上创建“Cisco AnyConnect兼容的VPN”
Ubuntu系统默认不支持,你必须要安装对应的VPN客户端软件。最方便的就是安装OpenConnect这个开源软件:

sudo apt-get install network-manager-openconnect-gnome

安装完之后,在Ubuntu系统的创建VPN连接的页面中,你就会看到有一个“Cisco AnyConnect 兼容的 VPN(openconnect)”选项了。

(76)在Ubuntu 16.10上安装5.1.10版本的VirtualBox
安装过程会遇到一些麻烦。如果用apt-get install virtualbox来安装,倒是很简单,不过这样装上的是5.1.6版本,所以我们去官网下载5.1.10版的deb安装包,用 dpkg -i 来安装:

sudo dpkg -i virtualbox-5.1_5.1.10-112026~Ubuntu~trusty_amd64.deb

但不出意外的话,很可能会出错,提示有几个dependency无法满足,需要再安装其他两个package,不过,你会发现,Ubuntu 16.10的官方源里并没有那两个package(官方源的版本较新,VirtualBox依赖的package版本较旧),于是我们需要自己下载:

wget http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx1_1.1.0-1_amd64.deb
wget http://ftp.cn.debian.org/debian/pool/main/libp/libpng/libpng12-0_1.2.49-1+deb7u2_amd64.deb

然后再用 dpkg -i 先安装这两个包,再回去安装VirtualBox,就OK了。
文章来源:http://www.codelast.com/
(77)Ubuntu下的VirtualBox虚拟机(WinXP)无法添加识别USB设备的问题
一个可能的原因是:你需要把当前用户(运行VirtualBox的用户)添加到 
vboxusers 用户组中,默认情况下当前用户不在这个用户组里,VirtualBox没有访问USB设备的权限。
把当前用户(codelast)添加到用户组 vboxusers 中的命令:

sudo usermod -a -G vboxusers codelast

(78)安装Dropbox(Ubuntu 16.04.3 LTS)
从Dropbox网站下载了Ubuntu的deb安装包并且安装了之后,其实并没有真正装好Dropbox,因为它实际上是一个在线安装包,还需要从Dropbox的网站上下载完整的Dropbox应用程序,而由于众所周知的原因,在中国大陆地区内是无法访问Dropbox网站的,所以安装过程必然无法进行下去。为了解决这个问题,你可以直接用系统连接一个可用的国外VPN,或者用下面的这种方法(通过一个代理程序来启动Dropbox安装程序)来解决:
安装代理软件:

sudo apt install proxychains

修改其配置:

sudo vim /etc/proxychains.conf

把最后一行(socks4 ...)改成:

socks5  127.0.0.1 1080

其中这个代理是你本地的一个socks5代理,自己要先搭好。
然后就可以用下面的方式来启动Dropbox,就会发现它可以毫无问题地下载Dropbox程序并完成整个安装过程了:

proxychains dropbox start -i

文章来源:http://www.codelast.com/
如果你嫌这种方式太麻烦,你也可以在浏览器开代理的时候直接下载完整的Dropbox安装包,然后再安装,就没有上面所说的在线下载过程了。Dropbox原下载网址是:https://www.dropbox.com/downloading,你只需要改成:https://www.dropbox.com/downloading?plat=mac&full=1,就可以下载到for MAC OS的完整安装包。同理,如果是Windows,则 plat=win,依此类推。

(79)proxychains提示找不到“libproxychains.so.3”的问题
如果用proxychains运行其他程序时提示如下错误:

ERROR: ld.so: object 'libproxychains.so.3' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.

那么你应该编辑 /usr/bin/proxychains 文件,把里面这一行的路径改成正确的:

export LD_PRELOAD=libproxychains.so.3

但如何知道 的正确路径呢?当然是在系统里搜索啦,比如我的机器上查到是在 /usr/lib/x86_64-linux-gnu/libproxychains.so.3,所以我就改成了:

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libproxychains.so.3

(80)修改Ubuntu的 /etc/resolv.conf 文件,重启系统后修改丢失的问题
正确的做法是:不要直接修改这个文件(正如该文件里的注释写的一样:“DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN”),而是应该用下面的方法来实现对 /etc/resolv.conf 的修改:
创建一个新文件 /etc/resolvconf/resolv.conf.d/tail,在里面写上你自定义的域名映射规则,例如:

abc.codelast.com 192.168.1.2

然后重启服务:

sudo /etc/init.d/resolvconf restart

现在你再去看一下/etc/resolv.conf 文件,就会发现它的内容已经神奇地改好了。当然也还有其他的办法可以实现同等效果,不过这种方法最简单。

(81)下载完整的DropBox安装包
从官网下载的安装包,默认是一个不完整的联网安装包,如果要下载完整的安装包(安装的时候就不需要联网下载额外数据了),那么可以在原下载链接后面加上“
?src=index&full=1”,类似于:

https://www.dropbox.com/downloading?src=index&full=1

这样下载下来的就是一个相当大的DropBox完整安装包了。

(82)To be added...

[原创]Ubuntu配置(杂)
Tagged on:     

发表评论

电子邮件地址不会被公开。 必填项已用*标注