CentOS中安裝YouCompleteMe插件全過程

来源:http://www.cnblogs.com/gr816/archive/2017/10/19/7693738.html
-Advertisement-
Play Games

整個過程幾經波折,搜查了很多網友博客。主要參考以下: http://990487026.blog.51cto.com/10133282/1905427 http://blog.csdn.net/bboxhe/article/details/46849167 我有試過CentOS6.9和CentOS7 ...


整個過程幾經波折,搜查了很多網友博客。主要參考以下:

http://990487026.blog.51cto.com/10133282/1905427

http://blog.csdn.net/bboxhe/article/details/46849167

我有試過CentOS6.9和CentOS7中安裝,均無問題。整個安裝步驟如下:(寫的比較粗糙)

1,

  win10 x64 : 通過無線網卡連接網路:
    IP: 192.168.1.106
    Netmast: 255.255.255.0
    gateway: 192.168.1.1
    DNS : 120.196.165.24
        211.136.192.6
    vmware中網路使用橋接方式 , 勾選 複製物理連接到網路 。選擇 對應的無線網卡其他都去掉。

  Centos6.9-x64
    IP: 192.168.1.6 /255.255.255.0 / 192.168.1.1 同一網段

  CentOS7 - x86 要註意添加網卡,並註意網路設置,GATEWAY網關
    1) 關閉虛擬機. VMare workstation 對應虛擬機安裝目錄中的.vmx添加ethernet0.virtualDev = "e1000"
    2) 重啟,ip addr -> cp /etc/sysconfig/network-scripts/ifg-lo /ect/sysconfig/network-scripts/ifg-ens33

  檢測 網路設置是否正確

    ping 192.168.1.106
    ping 192.168.1.1
    ping www.baidu.com  //pass

2, 虛擬機添加一個硬碟用來學習 20G SCSI
  reboot
  fdisk /dev/sdb
  mkfs.ext4 /dev/sdb1
  echo "/dev/sdb1 /learn ext4 defaults 0 0 " >> /etc/fstab

3, 添加用戶kk4728
  useradd kk4728
  passwd kk4728
 添加sudo用戶, /etc/sudoers 添加 kk4728 ALL=(ALL) ALL
 修改學習盤許可權
    chown -R kk4728 /learn
    chgrp -R kk4728 /learn
    chmod -R 775 /learn

4, 設置環境變數
  vi ~/.bash_profile添加
  PATH=$PATH:.
  讓系統可以查找當前可執行文件

5,同步時間
sudo yum install ntp
sudo ntpdate time.nist.gov

6 安裝依賴項
  sudo yum install -y gcc gcc-c++ gdb ctags ncurses-devel libevent-devel git automake xz zlib-devel cmake libxml2 libxslt libxslt-devel kernel-devel wget openssl openssl-devel

  CentOS7 中 預設安裝 gcc4.8.5
  glibc-2.17
  python-2.7.5

7, 升級glibc
  wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.xz
  xz -d glibc-2.17.tar.xz
  tar -xvf glibc-2.17.tar
  cd glibc-2.17
  mkdir build
  cd build
  ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
  sudo make && make install

  安裝時出錯 libc.a 寫許可權失敗 . 分開安裝
  sudo make
  sudo make install

  驗證:
    x64: strings /lib64/libc.so.6 | grep GLIBC
    x86: strings /lib/libc.so.6 | grep GLIBC

  如果這裡驗證失敗。應該是libc.so.6(軟連接)指向的路徑不對 這裡先不升級,按後期需要升級。libc.so.6指向的文件太關鍵;
  使用不當會引起系統無法登錄或重啟, 輕則部分指令段錯誤!!!
  find / -name "libc.so.6"
  cp /usr/glibc-2.17/lib/libc-2.17.so /lib/libc-2.17.so
  rm -rf /lib/libc.so.6
  之後如果引發異常,主要是libc.so.6是系統核心鏈接庫。刪除後引發大部分指令出錯!
  需要重新創建鏈接,但是ln 也是需要libc.so.6的。 需要手工添加LD_PRELOAD路徑
  [root#localhost ~ ] LD_PRELOAD=/lib/libc-2.17.so ln -s /lib/libc-2.17.so /lib/libc.so.6
  再次驗證OK

8,安裝Python2.7.13 (CentOS7 -> Python 2.7.5)
  wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz
  xz -d Python-2.7.13.tar.xz
  tar -xvf Python-2.7.13.tar
  cd Python-2.7.13
  ./configure --enable-shared
  sudo make
  sudo make install
  /usr/local/bin/python2.7 -V
  提示錯誤

  許可權切換回root
  vi /etc/ld.so.conf 添加/usr/local/lib 保存

  /sbin/ldconfig
  /sbin/ldconfig –v
  mv /usr/bin/python /usr/bin/python.bak
  ln -s /usr/local/bin/python2.7 /usr/bin/python
  vi /usr/bin/yum
  改成 #!/usr/bin/python2.6

  將許可權切換回kk4728

8 組件安裝
  安裝setuptools
    wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
  pip安裝
    wget –no-check-certificate https://github.com/pypa/pip/archive/7.1.0.tar.gz
    tar zvxf 7.1.0.tar.gz #解壓文件
    cd pip-7.1.0
    sudo python setup.py install

  CentOS7 - x86
  wget –no-check-certificate https://github.com/pypa/pip/archive/9.0.0.tar.gz
  tar zvxf 9.0.0.tar.gz #解壓文件
  cd pip-9.0.0
  sudo python setup.py install

  許可權改為root
  pip install requests
  pip install lxml
  pip install cssselect

  安裝flake8
  pip install flake8

  許可權改回kk4728

9 升級vim8.0
  wget https://github.com/vim/vim/archive/master.zip

  許可權改成root
  yum install unzip 
  unzip master.zip
  cd vim-master
  cd src/
  ./configure --with-features=huge --enable-python3interp --enable-pythoninterp=yes --enable-rubyinterp --enable-luainterp --enable-multibyte --enable-cscope
  //--prefix=/usr/local/vim
  //--enable-perlinterp
  make
  sudo make install 

  許可權改回kk4728

  vim --version
  驗證是否安裝vim --version | grep python


10 vimrc 插件安裝
  git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  vim .bash_profile 中添加alias vi=vim
  mv ~/.vimrc ~/.vimrc.bak
  Vundle插件管理的路徑:~/.vim/bundle/Vundle.vim

  .vimrc暫時配置
  """""""""""""""""""""""""""""""""""""""""""""
  filetype off
  set rtp+=~/.vim/bundle/Vundle.vim
  call vundle#begin()
  Plugin 'VundleVim/Vundle.vim'
  " My Plugins here:

  Plugin 'bling/vim-airline'
  Plugin 'scrooloose/nerdtree'
  Plugin 'kien/ctrlp.vim'
  Plugin 'taglist.vim'
  Plugin 'Valloric/YouCompleteMe'
  Plugin 'winmanager'
  let g:winManagerWindowLayout="NERDTree|TagList"
  let g:NERDTree_title="[NERDTree]"
  function! NERDTree_Start()
  exec 'NERDTree'
  endfunction
  function! NERDTree_IsValid()
  return 1
  endfunction

  " All of your Plugins must be added before the following line
  call vundle#end() " required
  filetype plugin indent on " required


  //安裝時間較長 十幾分鐘
  vim中:PluginInstall
  cmd: vim +PluginInstall +qall

11 更新gcc至6.3.0 安裝時間太長 擔心許可權問題中途中斷。這裡全部使用root安裝
  wget http://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
  tar -jxvf gcc-6.3.0.tar.bz2
  cd gcc-6.3.0
  ./contrib/download_prerequisites
  cd ..
  mkdir gcc-build-6.3.0
  cd gcc-build-6.3.0
  ../gcc-6.3.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

  ######################################################
  這裡要註意:按需要移除之前gcc版本
  yum remove gcc
  yum remove g++
  yum remove gcc-c++


  /lib/cpp fails sanity check的解決方法

  在某些軟體的時候,運行./configure 會報錯,錯誤提示為:
  configure: error: C++ preprocessor “/lib/cpp” sanity check
  check See `config.log’ for more details
  ######################################################

  make -j7
  make install

  處理libstdc++.so.6 以處理器x86 x64不同而不同 find / -name "libstdc++.*"
    x64: cp libstdc++.so.6.0.19 /usr/lib64/libstdc++.so.6.0.19
      ln -sf /usr/lib64/libstdc++.so.6.0.19 /usr/lib64/libstdc++.so.6
    x32: cp /usr/local/lib/libstdc++.so.6.0.22 /usr/lib/libstdc++.so.6.0.22
      ln -sf /usr/lib/libstdc++.so.6.0.22 /usr/lib/libstdc++.so.6
  輸入strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX查看成功
  strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
  GLIBCXX_3.4.8
  GLIBCXX_3.4.9
  GLIBCXX_3.4.10
  GLIBCXX_3.4.11
  GLIBCXX_3.4.12
  GLIBCXX_3.4.13
  GLIBCXX_3.4.14
  GLIBCXX_3.4.15
  GLIBCXX_3.4.16
  GLIBCXX_3.4.17
  GLIBCXX_3.4.18
  GLIBCXX_3.4.19
  GLIBCXX_3.4.20
  GLIBCXX_3.4.21
  GLIBCXX_3.4.22
  GLIBCXX_FORCE_NEW
  GLIBCXX_DEBUG_MESSAGE_LENGTH


12 安裝clang : 這裡不再重新編譯,直接下載更新好的

   i686: i386的一個子集,支持的cpu從Pentium 2 (686)開始,之前的型號不支持.
   i386: 適用於intel和AMD所有32位的cpu.以及via採用X86架構的32的cpu.
   intel平臺包括8086,80286,80386,80486,奔騰系列(1.2.3.4)、賽揚系列,Pentium D系列以及centrino P-M,core duo 等.
   X86_64: 適用於intel的Core 2 Duo, Centrino Core 2 Duo, and Xeon 和AMD Athlon64/x2, Sempron64/x2, Duron64等採用X86架構的64位cpu.

   wget http://llvm.org/releases/4.0.1/clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar.xz
  xz -d clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar.xz
  tar xvf clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25.tar
  cd clang+llvm-4.0.1-x86_64-linux-gnu-Fedora-25

  x64:
    wget http://llvm.org/releases/3.5.1/clang+llvm-3.5.1-x86_64-fedora20.tar.xz
    xz -d clang+llvm-3.5.1-x86_64-fedora20.tar.xz
    tar xvf clang+llvm-3.5.1-x86_64-fedora20.tar
    cd clang+llvm-3.5.1-x86_64-fedora20
  x86:
    wget http://llvm.org/releases/3.5.1/clang+llvm-3.5.1-i686-fedora20.tar.xz
    xz -d clang+llvm-3.5.1-i686-fedora20.tar.xz
    tar xvf clang+llvm-3.5.1-i686-fedora20.tar
    cd clang+llvm-3.5.1-i686-fedora20

  以上兩種應該都可以,反正都是編譯好了的就行了。這裡我保守用了3.5.1版本的。文件小點 100多M 4.0.1 700多M

  root許可權下
  mkdir /usr/clang_351
  cp -r /learn/clang+llvm-3.5.1-x86_64-fedora2/bin /usr/clang_351
  cp -r /learn/clang+llvm-3.5.1-x86_64-fedora2/lib /usr/clang_351 ;libclang.so 在該目錄中,後面編譯ycm時需要
  cp -r /learn/clang+llvm-3.5.1-x86_64-fedora2/lib /usr/clang_351 ;生成ycm_core需要

  kk4728許可權:
  vi ~/.bash_profile 添加
  PATH=/usr/clang_351/bin:$PATH
  export PATH

  source ~/.bash_profile更新

13 安裝YouCompleteMe

  cp /usr/clang_3_5/lib/libclang.so ~/.vim/bundle/YouCompleteMe/python/libclang.so

  cd ~
  mkdir build
  cd build
  cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=/usr/clang_351/ . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
  cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
  提示:編譯器不支持 C++11
  Your C++ compiler does NOT fully support C++11.

  於是 find /usr -name "gcc" 發現 /usr/bin/gcc版本仍為4.4.7 從而備份/usr/bin/gcc 再試
  由於之前安裝gcc-6.3.0時沒有移除之前 4.4.7版本
  所以 sudo yum remove gcc
  sudo yum remove g++
  sudo yum remove gcc-c++

  cp /usr/local/bin/gcc /usr/bin/gcc
  在build目錄下刪除 之前安裝失敗的中間文件 rm -rf *

  //這裡需要註意的是,~/ycm_temp/llvm_root_dir中包含的是根據第一步下載的壓縮包解壓出來的內容(包括include, bin等等文件)。
  //中途出現錯誤 clang-c/Index.h找不到 就是PATH_TO_LLVM_ROOT路徑設置錯誤!

  rm -rf CMakeCache.txt //防止中途編譯異常帶來的問題
  make ycm_core
  編譯出現問題:可能與編譯器版本有關 gcc6.3.0 可能太新了 -> 後查極有可能時clang3.5.1偏舊 改成 4.0.1可能能解決
  --> 再 make ycm_core
  cp /usr/clang_351/lib/libclang.so ~/.vim/bundle/YouCompleteMe/python/libclang.so 貌似不會出錯

  [ 72%] Building CXX object ycm/CMakeFiles/ycm_core.dir/ClangCompleter/TranslationUnit.cpp.o
  /home/kk4728/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/ClangCompleter/TranslationUnit.cpp 在函數‘unsigned int YouCompleteMe::{匿名}::EditingOptions()’中:
  /home/kk4728/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/ClangCompleter/TranslationUnit.cpp:43:10: 錯誤:‘CXTranslationUnit_CreatePreambleOnFirstParse’在此作用域中尚未聲明
  CXTranslationUnit_CreatePreambleOnFirstParse |
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /home/kk4728/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/ClangCompleter/TranslationUnit.cpp:44:10: 錯誤:‘CXTranslationUnit_KeepGoing’在此作用域中尚未聲明
  CXTranslationUnit_KeepGoing |
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  /home/kk4728/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/ClangCompleter/TranslationUnit.cpp 在構造函數‘YouCompleteMe::TranslationUnit::TranslationUnit(const string&,     const std::vector<UnsavedFile>&, const std::vector<std::__cxx11::basic_string<char> >&, CXIndex)’中:
  /home/kk4728/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/ClangCompleter/TranslationUnit.cpp:105:51: 錯誤:‘clang_parseTranslationUnit2FullArgv’在此作用域中尚未聲明
  &clang_translation_unit_ );
^
make[3]: *** [ycm/CMakeFiles/ycm_core.dir/ClangCompleter/TranslationUnit.cpp.o] 錯誤 1
make[2]: *** [ycm/CMakeFiles/ycm_core.dir/all] 錯誤 2
make[1]: *** [ycm/CMakeFiles/ycm_core.dir/rule] 錯誤 2




  make ycm_support_libs x64中失敗!

  //暫時越過 make ycm_make 和make ycm_support_libs
  直接進入到YCM安裝目錄
  ./install.sh --clang-completer
  在x64中運行正常,在x86中出現clang.5.0版本庫異常,無法自動下載。

14 vimrc
  let g:ycm_global_ycm_extra_conf=‘~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py‘
  檢查配置
    echo | clang -std=c++11 -stdlib=libc++ -v -E -x c++ -

  上述.ycm_extra_conf.py中添加c庫支持
  '-isystem',
  '/usr/include',
  '-isystem',
  '/usr/local/include',
  '-isystem',
  '/usr/clang_3_5/bin/../include/c++/v1',
  '-isystem',
  '/usr/clang_3_5/bin/../lib/clang/3.5.1/include',

  安裝 man
  yum install man
  yum install man-pages.noarch man-pages-overrides.noarch

  將en下的man複製過來,先湊合用用:
  cp /usr/share/locale/en/LC_MESSAGES/man /usr/share/locale/zh/LC_MESSAGES/

  整個vimrc配置如下
  """""""""""""""""""""""""""""""""""""""""""
  filetype off
  set rtp+=~/.vim/bundle/Vundle.vim
  call vundle#begin()
  Plugin 'gmarik/Vundle.vim'
  " My Plugins here:"

  Plugin 'bling/vim-airline'
  "let g:airline_powerline_fonts = 1"
  set laststatus=2
  set t_Co=256

  Plugin 'scrooloose/nerdtree'
  let mapleader=","
  nmap <silent> <leader>ne :NERDTree<CR>
  nmap <silent> <leader>nc :NERDTreeClose<CR>
  "map <silent> <F3> :NERDTreeToggle<CR>"
  Plugin 'kien/ctrlp.vim'
  "Plugin 'altercation/vim-colors-solarized'"
  let g:ctrlp_custom_ignore = {
  \ 'dir': 'vendor/bundle/*\|vendor/cache/*\|public\|spec',
  \ 'file': '\v\.(exe|so|dll|swp|log|jpg|png|json)$',
  \ }
  syntax enable
  set background=dark
  let g:solarized_termcolors=256
  " colorscheme flatcolor

  Plugin 'taglist.vim'
  let Tlist_Show_One_File = 1 "不同時顯示多個文件的tag,只顯示當前文件的"
  let Tlist_Exit_OnlyWindow = 1 "如果taglist視窗是最後一個視窗,則退出vim"
  "let Tlist_Use_Right_Window = 1" "在右側視窗中顯示taglist視窗"
  "nmap <F4> :TlistToggle<cr>"

  Plugin 'Valloric/YouCompleteMe'
  Plugin 'rdnetto/YCM-Generator'
  let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
  let g:ycm_confirm_extra_conf = 0
  nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
  nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
  nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
  inoremap <c-o> <c-x><c-o>
  let g:ycm_semantic_triggers = {
  \ 'c' : ['->', ' ', '.', ' ', '(', '[', '&'],
  \ 'cpp,objcpp' : ['->', '.', ' ', '(', '[', '&', '::'],
  \ 'perl' : ['->', '::', ' '],
  \ 'php' : ['->', '::', '.'],
  \ 'cs,java,javascript,d,vim,python,perl6,scala,vb,elixir,go' : ['.'],
  \ 'ruby' : ['.', '::'],
  \ 'lua' : ['.', ':']
  \ }

  Plugin 'winmanager'
  let g:winManagerWindowLayout="NERDTree|TagList"
  let g:NERDTree_title="[NERDTree]"
  function! NERDTree_Start()
  exec 'NERDTree'
  endfunction
  function! NERDTree_IsValid()
  return 1
  endfunction
  nmap <silent> <F2> :if IsWinManagerVisible() <BAR> WMToggle<CR> <BAR> else <BAR> WMToggle<CR>:q<CR> endif <CR><CR>

  " All of your Plugins must be added before the following line"
  call vundle#end() " required"
  filetype plugin indent on " required"

  set nu "show line number"
  set ts=4 "tab length is 4"
  autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
  set list listchars=tab:→\ ,trail:·
  set hlsearch incsearch smartcase ignorecase
  autocmd BufNewFile,BufRead *.json set filetype=javascript

  
  nmap mm :call ChangeMouse()<cr>
  function ChangeMouse()
  if &mouse == "a"
  set mouse-=a
  else
  let &mouse = "a"
  endif
  endfunction

  set nocompatible
  set autoindent
  set backspace=indent,eol,start

  set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
  set termencoding=utf-8
  set encoding=utf-8
  set fileencodings=ucs-bom,utf-8,cp936
  set fileencoding=utf-8
  
  安裝 TMUX
  yum install automake
  yum install libevent-devel ncurses-devel

  安裝TMUX錯誤:‘EVBUFFER_EOL_LF’未聲明 ----未嘗試!!!!!!!!!!

  原因是使用的libevent的版本太低造成的,要求libevent>= 2.0.10-stable

  wget –no-check-certificate https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz
  按照https://blog.linuxeye.com/323.html
  成功安裝


15 清理
  clang 編譯好了之後,不用安裝,僅僅為了得到libclang.so 已經複製到 /usr/clang_351中
  python2.7 也是臨時的,作為clang的依賴 不需要安裝什麼第三方庫
  gcc 也可以是臨時的, 用來編譯clang, 還可以得到libstdc++.so

  清理後空間不怎麼減少!!!!!!!!!!!!!!!!!!!




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.背景 1.1 mips32搭載32bit vxworks操作系統 1.2 x86搭載64bit windows10操作系統 二.大小端模式判定前的準備 2.1 先要知道各種架構上各種整型數占據的bit數,也就是通過範圍來確定bit數 上一篇已經講過,特奉上地址如下: http://www.cnb ...
  • 首先你需要Ubuntu 系統在你的電腦上:(這個應該都有了吧,這個就不做介紹了) 環境:Java Python maven 這個你可以在Windows上下載好 jdk_8u144-linux-x86.tar.gz包(我安裝時最新版,現在可以下 載最新版) Apache-maven-3.5.0 (聲 ...
  • 前言 Apache 2.4 以後的版本不再自帶 APR 庫(Apache Portable Runtime,Apache 可移植運行庫),所以在安裝 Apache 之前需要手動下載安裝 APR 庫。 完整的 APR 實際上包含了三個依賴包:apr、apr-util 以及 apr-iconv。 正文 ...
  • 個人原創禁止轉載 軟體環境: Centos6.9 x64 openvpn-2.4.3-1.el6.x86_64.rpm easy-rsa-2.2.2-1.el6.noarch.rpm #推薦使用2.2的版本 pkcs11-helper-1.11-3.el6.x86_64.rpm 網路環境: open ...
  • 參考文檔: 本文涉及zookeeper集群的安裝配置。 一.環境 1. 操作系統 CentOS-7-x86_64-Everything-1511 2. 版本 JDK 8u131:http://www.oracle.com/technetwork/java/javase/downloads/index ...
  • 1》集群: 隨著互聯網的發展,大量的客戶端請求蜂擁而至,同時伺服器的負載也越來越大,然而單台伺服器的負載又是有限的,這樣就會導致伺服器響應客戶端請求的時間越長, 甚至產生拒絕服務的情況;另外目前的網站多數是7*24小時提供不間斷網路服務,如果僅採用單點伺服器對外提供網路服務,那麼在出現單點故障時,將 ...
  • 第1章 NFS介紹 1.1 NFS服務內容的概述 □ RPC服務知識概念介紹說明,以及RPC服務存在價值(必須理解掌握) □ NFS服務工作原理講解(必須理解掌握) □ NFS共用文件系統使用原理講解(必須理解掌握) □ NFS服務配罝文件exports編寫格式說明(必須理解掌握) 1.2 NFS是 ...
  • 新學linux,整理出來的文章,方便我自己這個懶人=_= 1.新建虛擬機 修改主機名(改成自己能記得的) 修改的命令:vi /etc/sysconfig/network 進入後: |-- i (進行修改) |-- esc ( 退出修改) |-- :wq (保存修改) **************** ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...