not a number

安安
  • About
  • Publications
  • Archive
  • feeds

Posts match “ Linux ” tag:

about 8 years ago

四月開發筆記

整理一下四月在工作上遇到的一些開發瓶頸,以及其解法。大部分都是跟linux或者c++有關。

GSL篇

GSL,也就是 GNU Scientific Librarary 是一個號稱可以取代 Numerical Recipe 的科學計算函示庫。

安裝篇

如果是在國網上,不可能取得 sudo 安裝在 /usr/local/lib/,所以要另外找地方放,例如自己開一個 ~/local/。安裝步驟如下

./configure --prefix ~/local/
make
make install

安裝後

附加新的 LD_LIBRARY_PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/local/lib/

compile的時候要加上的flag

-lgsl -lgslcblas -lm

MPI 篇

重新載入 .bashrc

以前都以為改完 .bashrc之後要重登才會生效(其實確實也是如此),不過其實有偷吃步,可以直接執行

. ~/.bashrc

就可以重新載入了

LINUX 主機管理篇

我們實驗室自己的機器,不知道為什麼從半年前開始就無法 sudo ,系統說 /etc/sudoers 這個檔案壞掉了。麻煩就麻煩在,因為 sudo 壞掉了,所以要修一定要用 root;但是為了安全因素,我們的機器根本沒有啟用 root ,最後發現可以在開機的時候按住 shift 進入 GRUB menu,然後有 root 模式可以用。講起來好像很容易,不過我們的主機實體是託管在中研院地下三樓的機房裡面,所以還是特地去了三次,才把問題解決。

進到了 root 模式之後,按照系統的錯誤訊息,照理來說執行 chmod 0440 sudoers就好,結果系統又說 file system read-only,靠夭,這是什麼巫術?

mount -o remount,rw /

不要問我這是怎麼辦到的,總之就是 magic!
remount好之後,再跑 chmod 0440 /etc/sudoers即可

另外筆記一下,我發現被限制用 ssh 登入的帳號,也就是只能先用一般帳號登入再su過去的帳號,不能用 screen。

釋放swap

先查詢swap所在地點

swapon -s

假設查出來是 /dev/sda5/,接下來先執行

sync

然後執行

swapoff /dev/sda5/; swapoff /dev/sda5/

大功告成!可以跑top檢查一下是否已經釋放成功。

  • Linux
  • c++
  • GSL
  • roor
  • swap
  • ubuntu
  • April 30, 2014 17:29
  • Permalink
  • Comments
 
about 8 years ago

解決 jspr 不能執行 reconstruction 的問題

jspr 是美國普渡大學的 Wen Jiang 教授團隊所開發的單顆粒重組( single particle reonstruction)軟體包,一直以來我同事都是在Windows 上面開 Virtual box ,跑該團隊所提供的 ova 檔案裡面的 linux系統。但是跑顆粒重組本身是很耗能的事情,在虛擬機器上跑效能一定不會太好,所以我今天幫我同事在原生的 linux 系統上弄了一樣的環境給他用。原本以為一切順利,但是最後他要跑最重要的 reconstruction 的步驟的時候,在 terminal 出現了這樣的錯誤:

  File "/home/alanfan101/cryoem/x86_64/jiang/jspr.py", line 1417, in createBTSession
    import libtorrent
ImportError: libboost_system.so.1.53.0: cannot open shared object file: No such file or
directory

查了一下,發現這個libtorrent在軟體解壓縮後的目錄中的cryoem/x86_64/lib64和cryoem/x86_64/lib都有,如果使用ldd去查詢,會發現:

[user@linux lib]# ldd libtorrent-rasterbar.so
    linux-vdso.so.1 =>  (0x00007fffd51ff000)
    libboost_system.so.1.54.0 => not found
    librt.so.1 => /lib64/librt.so.1 (0x00007f25a579d000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f25a5580000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f25a527a000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f25a4ff5000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f25a4c61000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003044c00000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f25a4a4b000)

嗯,沒錯就是少了這個libboost_system.so.1.54.0。但是 Wen Jiang 的團隊號稱這個 jspr 軟體包,是自給自足,什麼都有啊。於是我去找了他們提供的 ova 映像檔,去查裡面那個可以動的版本,到底是去哪裡找libboost_system.so.1.54.0的。一查,發現居然就在cryoem/x86_6x/lib下面,原來,應該只是忘記在自己的 .bashrc下面 source 他們提供的bashrc設定而已,虛驚一場!

  • Linux
  • bashrc
  • source
  • May 28, 2014 22:46
  • Permalink
  • Comments
 
about 8 years ago

解決jspr資料庫損毀的問題

我們group的博後說 Wen Jiang 的 jspr 每次用一陣子都會出error,他只好把linux系統砍掉重裝 @@,我叫他拜託不要再這麼做了!

遇到這個問題,可能會在 terminal 上面看到的錯誤訊息如下:

Traceback (most recent call last):
  File "/home/alanfan101/cryoem/x86_64/EMAN2/lib/EMAN2db.py", line 1289, in put
    self.bdb.put(key,val,txn=txn)
DBPageNotFoundError: (-30985, 'DB_PAGE_NOTFOUND: Requested page not found')
********** Warning: problem writing  ▒U
                                       micrographsq.  to  importMicrograph.py .
Retrying (0/10)
********** Warning: problem writing  ▒U
                                       micrographsq.  to  importMicrograph.py .

或者

Traceback (most recent call last):
  File "/home/alanfan101/cryoem/x86_64/EMAN2/lib/EMAN2db.py", line 1289, in put
    self.bdb.put(key,val,txn=txn)
DBPageNotFoundError: (-30985, 'DB_PAGE_NOTFOUND: Requested page not found')
********** Warning: problem writing  ▒U
                                       micrographsq.  to  importMicrograph.py . Retrying
(9/10)
NOT Writing notes, ppid=-1

解法很簡單

rm -rf ~/EMAN2DB

就這樣。雖然如此可能會把記憶在EMAN2裡面的參數消掉,但是這總比把整個Linux系統打掉重來簡單吧?

  • Linux
  • EMAN
  • jspr
  • June 11, 2014 18:36
  • Permalink
  • Comments
 
over 7 years ago

誤砍了 .ssh 資料夾怎麼辦

剛才學弟問我,他不小心砍了機器上面的.ssh資料夾,怎麼辦?
這是新手滿常犯的錯誤,也就是第一次用(S)FTP連上機器太興奮,就把隱藏資料夾也一起都砍了。大部分的東西其實砍了也無所謂,機器會再自動長出來;但也有的東西,例如 .bashrc,砍了也是很麻煩的。 .ssh 我覺得應該也是會自己長回來,不過它的性質跟其他的內建資料夾有點不一樣:它不能動用 root 複製其他使用者的資料夾備份過來就好,因為 .ssh 下面的東西是獨一而二的。說了這麼多,其實重建 .ssh只要三個步驟。

mkdir ~/.ssh

首先當然就是建立資料夾囉

chmod 700 ~/.ssh

給 owner全部的權力,包含執行!

ssh-keygen

接著就是重新產生 key pair。系統會問你一些問題,都按 enter 略過即可。

以上,這樣就完成了。

  • Linux
  • SSH
  • NCHC
  • ALPS
  • January 08, 2015 10:44
  • Permalink
  • Comments
 

Copyright © 2013 leeneil . Powered by Logdown.
Based on work at subtlepatterns.com.