2013/11/17
换回Debian6.0.8了,实在无法忍受Gnome3,各种无法忍受的体验和Bug。使用Debian以来,还是4.0(Etch)和6.0(Squeeze)用得最顺手。
1、安装jdk6
设置源,增加contrib和non-free,如修改/etc/apt/sources.list:
deb http://mirrors.163.com/debian/ squeeze main contrib non-free deb-src http://mirrors.163.com/debian/ squeeze main contrib non-free安装:
sudo apt-get install sun-java6-jdk切换:
sudo update-alternatives --config java 有 3 个候选项可用于替换 java (提供 /usr/bin/java)。 选择 路径 优先级 状态 ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自动模式 1 /usr/bin/gij-4.4 1044 手动模式 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手动模式 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 手动模式 要维持当前值[*]请按回车键,或者键入选择的编号:选3切换到sun-java6-jdk
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev参考 http://source.android.com/source/initializing.html,编译Android2.3.1和Android4.2.1通过。
前些天重装了个Debian7.1 64bit的系统,搭建开发环境和安装常用的工具颇花精力,整理了下,记录如下。
参考:
http://blog.csdn.net/gexueyuan/article/details/7772387
http://blog.csdn.net/nxh_love/article/details/8834849
在编译过程中,可能会提示其他一些错误,没关系,直接Google一般都可以解决。
如果遇到gcc版本不匹配的问题,参考:http://blog.csdn.net/sdfgh2046/article/details/5844824
个人喜欢一边看代码一边听音乐,喜欢使用Rhythmbox这个Linux自带的播放器,就是中文的mp3会乱码。
解决方法:http://blog.csdn.net/gexueyuan/article/details/7851878
sudo apt-get remove ibus //Ubuntu默认安装ibus,删除它
sudo apt-get remove fcitx* //如果有安装过fcitx的话,也删除它
sudo apt-get autoremove //删除依赖库
dpkg --get-selections | grep fcitx //检测是否删除fcitx
sudo add-apt-repository ppa:fcitx-team/nightly //添加fcitx的ppa
sudo apt-get update
sudo apt-get install fcitx-sogoupinyin //安装搜狗输入法
sudo apt-get install google-chrome-stable
TIPS:开始sudo apt-get install chrome是安装不成功的,提示没有这个包,可以用sudo apt-cache search chrome来搜索有没有相关的包。
安装完登录gmail,同步chrome的标签和插件就行了,非常方便。
apt-get install unrar-free
安装完后依然会有一些问题,有些rar文件我们可以正常的解压,但是有些rar文件我们依然不能正常的解压了。到winrar的官网上看看有没有linux的版本,在donwload页果然看到了linux版本的下载:http://www.rarlab.com/download.htm。将rarlinux.tar.gz解压后,就可以直接使用里面的rar、unrar、rar_static命令了。
对于我们这种攻城狮来说,一个比较工具是必须的,个人喜欢用idiffuse。
sudo apt-get install diffuse
1)TFTP:首先需要安装tftpd软件包:sudo apt-get install tftpd
设置tftp目录路径,在 /etc/inetd.conf 添加如下字句来实现:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
重启服务。
2)NFS:apt-get install nfs-kernel-server、apt-get install nfs-common
设置nfs共享目录:在/etc/exports中添加/opt/nfs *(rw,no_root_squash,no_all_squash)
重启服务即可访问:mount HOSTIP:/opt/nfs /mnt
3)telnet:agt-get install telnetd
新建一个文件/etc/xinetd.d/telnet,并往里面添加以下内容:
service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd server_args = -h log_on_failure += USERID }
重启服务
sudo apt-get install vim ctags cscope
还有其他必要的插件,参考:http://www.cnblogs.com/witcxc/archive/2011/12/28/2304704.html
下面是vimrc配置,自己定义了一些习惯使用的快捷键。
另外set et将tab转换成空格,比如编辑Android代码时,需要设置这个命令,因为Android代码缩进一般是4个空格。set noet则取消设置。
为了使用提示函数原型的插件echofunc.vim,建立tags文件时需要加--fields=+lS选项,如:$ ctags -R --fields=+lS
set langmenu=zh_CN.UTF-8 "设置菜单语言 source $VIMRUNTIME/delmenu.vim "导入删除菜单脚本,删除乱码的菜单 source $VIMRUNTIME/menu.vim "导入正常的菜单脚本 language messages zh_CN.utf-8 "设置提示信息语言 " 判断是终端还是gvim if has("gui_running") let g:isGUI=1 else let g:isGUI=0 endif if v:progname =~? "evim" finish endif " 非兼容模式 set nocompatible "显示行号 set number " allow backspacing over everything in insert mode set backspace=indent,eol,start "自动加载外部修改内容 set autoread "命令模式下使用tab自动补全的时候,将补全内容用一个漂亮的单行菜单形式显示出来 set wildmenu "不备份文件 set nobackup set history=1000 "编辑时右下角光标的状态 "状态栏显示在屏幕底部 set ruler " show the cursor position all the time set showcmd " display incomplete commands map Q gq "设置语法高亮 set syntax=c syntax enable "搜索时高亮关键字 set hlsearch "中文帮助 set helplang=cn "不在单词中间断行 set lbr command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis set ambiwidth=double " 指定不折行,如果一行太长,超过屏幕宽度,则向右边延伸到屏幕外面 "set nowrap set wrap "打开C/C++风格的自动缩进 "当在终端粘贴代码时,这个动作解释为键入,vim会按照设置的自动缩进格式为代码 "调整缩进而粘贴的代码本身就包含了缩进,因此便出现了版式混乱的情况。 "在GVIM时不会出现这种情况 "在粘贴之前输入 :set paste 关闭所有自动缩进 "粘贴后 :set nopaste 重新打开原有的自动缩进设置 set cindent shiftwidth=8 "设定C/C++风格自动缩进的选项 " :0 switch语句之下的case语句缩进0个空格 " g0 class struct 等之下的访问权控制语句如public protected private等 " 相对class缩进0个空格 " t0 如果函数返回值与函数名不在同一行,则返回值缩进0个空格。 " 这里返回值指的是函数返回类型 " (sus 当一对括号跨越多行时,其后的行缩进为sw指定的距离 set cino=:0,g0,t0,+0,(0 set smartindent "c 程序自动缩进 "打开普通文件类型的自动缩进,不如cindent智能, "但可以为编辑非C/C++文件提供一定的帮助 set autoindent shiftwidth=8 "tab4个空格 set tabstop=4 "将所有的tab替换为空格 "set et " 统一缩进为4 set softtabstop=4 set shiftwidth=4 "显示括号配对情况,打开这个选项后,当输入后括号时,光标会跳 回前括号片刻,然后 "跳回来,以此显示括号的配对情况 set showmatch set matchtime=2 "状态栏 "set statusline format set cmdheight=1 "命令行占一行 set laststatus=2 "显示状态栏 highlight statusline guifg=SlateBlue guibg=Yellow highlight statuslineNC guifg=Gray guibg=White set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L] """""""""""""""""""""""折叠""""""""""""""""""""""""""""""""""""""""""""""" set foldmethod=manual set foldlevel=0 "初始时不折叠 set foldcolumn=0 set foldenable "空格折叠键 "nnoremap <space> @= ((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> "<F3>给文件加上日期 "map <F3> :read !date<CR> "set cursorline "整行标颜色 "set cursorcolumn "整列标注颜色 "+++++++++++++VIM中文编码设置 " 1. encoding 是VIM内部使用的字符编码方式。设置了它之后,VIM内部所有的buffer, " 寄存器、脚本中的字符串等都使用这个编码。VIM在工作的时候,如果编码方式与它 " 的内部编码不一致,它会先把编码转换成内部编码。如果工作用的编码含有无法转换 " 为内部编码的字符,则这些字符就会丢失。因此,内部编码一定要使用一种表现能力 " 足够强的编码。 set encoding=utf-8 " 2. termencoding 是VIM用于屏幕显示的编码,在显示的时候VIM会把内部编码转换 " 为屏幕编码,再用于输出。内部编码中含有无法转换为屏幕编码的字符时,该字符会 " 变成问号,但不会影响对它的编辑操作。如果termencoding没有设置,则直接使用 " encoding,不进行转换。 " let &termencoding=&encoding set termencoding=utf-8 " 3. fileencoding VIM从磁盘上读取文件的时候,会对文件的编码进行探测。如果文件 " 的编码方式和VIM的内部编码不同,VIM就会对编码进行转换。转换完毕后,VIM会 " 将fileencoding设置为文件的编码。当VIM存盘的时候,如果encoding和fileencoding " 不一样,则会进行编码转换。因此,通过打开文件后设置fileencoding,可以将文件 " 由一种编码转换为另一种编码。但fileencoding是在打开文件的时候,由VIM进行 " 探测后自动设置的。因此,如果出现乱码,我们无法通过 在打开文件后重新设置 " fileencoding来纠正乱码。 " 4. fileencodings 编码的自动识别是通过fileencodings实现的。用一个逗号分隔。 " 当打开文件的时候,VIM按顺序使用其中的编码尝试解码,如果成功的话,就使用该 " 编码方式进行解码,并将fileencoding设置为这个值,如果失败的话,就继续试验下 " 一个编码。所以在设置时,一定要把要求严格的,当文件不是这个编码的时候更容易 " 出现解码失败的编码方式放在前面,把宽松的编码放在后面。 set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set incsearch "查找匹配 set sessionoptions+=resize if has("gui_running") colorscheme desertEx " 背景颜色 "colorscheme rainbow_neon " 背景颜色 set guifont=Bitstream\ Vera\ Sans\ Mono\ 14 "gvim字体设置 "<F2>显隐状态栏 set guioptions=aegimtT set guioptions-=r set guioptions-=l set guioptions-=m set guioptions-=T set lines=20 columns=80 map <silent> <F2> :if &guioptions =~# 'T' <Bar> \ set guioptions-=T <Bar> \ set guioptions-=m <Bar> \ else <Bar> \ set guioptions+=T <Bar> \ set guioptions+=m <Bar> \ endif<CR> else colorscheme desert_my" 背景颜色 endif "中文帮助 set helplang=cn set completeopt=longest,menu,menuone "打开语法打开补全 setlocal omnifunc=syntaxcomplete#Complete set mouse=a """"""""""""""""""""""""""窗口最大化"""""""""""""""""""""""""""""""" "function Maximize_Window() " silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz "endfunction """"""""""""""""""""""""""插件配置""""""""""""""""""""""""""""""""""" let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 if has("autocmd") filetype plugin on augroup vimrcEx au! "光标自动到上次退出该文件时所在位置 autocmd FileType text setlocal textwidth=78 fo+=MmB autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif augroup END else set autoindent " always set autoindenting on endif " has("autocmd") "打开断行模式对亚洲语言的支持,m表示允许在两个汉字之间断行, "即使汉字间没有出现空格 "B表示将两行合并为一行的时候,汉字与汉字之间不要补空格 set tw=78 fo+=MmB "set visualbell "用闪烁代替响铃 "set novisualbell "用响铃代替闪烁 set noeb "noerrorbells的缩写 map <Left> :tabp<CR> map <Right> :tabn<CR> """""""""""""""""""""""""""""""""""""""""""""""""""""" " cscope if has("cscope") set csprg=/usr/bin/cscope set cst set csto=0 set nocsverb if filereadable("cscope.out") cs add cscope.out elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb endif """""""""""""""""""""""""""""""""""""""""""""""""" " vimwiki let g:vimwiki_use_mouse = 1 let g:vimwiki_list_ignore_newline = 0 let g:vimwiki_hl_headers = 0 " vimwiki打开折叠 "let g:vimwiki_folding = 1 let g:vimwiki_camel_case = 0 let g:vimwiki_list_ignore_newline = 0 let g:vimwiki_CJK_length = 1 "设定文件浏览器目录为当前目录 set bsdir=buffer "set autochdir " 日历插件 map ca :Calendar<cr> map <S-Space> :<C-Space> " vimwiki let g:vimwiki_list = [{'path': '~/Wiki/wiki/', 'path_html': '~/Wiki/', 'auto_export': 1}] " 转化为Html文件 map <S-F4> :Vimwiki2HTML<cr> " 设置颜色 hi VimwikiHeader1 guifg=#FF0000 hi VimwikiHeader2 guifg=#00FF00 hi VimwikiHeader3 guifg=#0000FF hi VimwikiHeader4 guifg=#FF00FF hi VimwikiHeader5 guifg=#00FFFF hi VimwikiHeader6 guifg=#FFFF00 " 设置cs命令快捷键 nmap css :cs find s <C-R>=expand("<cword>")<CR><CR> nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR> nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR> nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR> nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR> nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap csi :cs find i <C-R>=expand("<cfile>")<CR><CR> nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR> " 用quickfix窗口显示cscope结果 set cscopequickfix=s-,c-,d-,i-,t-,e- " 设置quickfix命令快捷键 nmap cw :cw<CR> nmap cn :cn<CR> nmap cp :cp<CR> " 映射wm键为命令WMToggle显示winManagerWindow,需要winmanager.zip,见:http://www.vim.org/scripts/script.php?script_id=95 let g:winManagerWindowLayout='FileExplorer|TagList' nmap wm :WMToggle<cr> " 映射tl键显示TagList,需要taglist.vim,见:http://www.vim.org/scripts/script.php?script_id=273 nmap tl :Tlist<cr> " 映射F3为grep搜索快捷键,需要grep.vim,见:http://www.vim.org/scripts/script.php?script_id=311 " nnoremap <silent> <F3> :Grep<CR> nnoremap <silent> <F3> :Rgrep<CR> " 映射tab为自动补全快捷键,需要supertab.vim,见:http://www.vim.org/scripts/script.php?script_id=1643 let g:SuperTabRetainCompletionType=2 let g:SuperTabDefaultCompletionType="<C-X><C-O>" " 映射F12为头文件源文件相互切换快捷键,需要a.vim,见:http://www.vim.org/scripts/script.php?script_id=31 nnoremap <silent> <F12> :A<CR>