2018年10月28日 星期日

筆記:ubuntu環境下開發工具安裝及使用

基本操作指令
  1. Alt + F2  輸入 gnome-terminal可開出terminal
  2. github
  3. unzip
  4. 輸入法:system settings  然後 Language Support  然後 install 缺少的package  然後登出再登入 ConfigureFcitx 選 + 選新酷音 關閉後會看到
  5. 繪圖軟體:KolourPaint
  6. 文字編輯器:notepadqq存檔的時候,記得設定語系,不然python會錯誤
  7. 文字編輯器:VIM sudo apt-get install vim  a : append  esc 跳回上層  VIM使用

GCC
  1. gcc -v是5.4.0太高,tensorflow build版本 用4.8 參考資料
  2. 決定全部降為4.8,參考文件 這裡
  3. sudo apt-get install gcc-4.8
  4. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
  5. sudo update-alternatives --config gcc
  6. gcc -version   就是4.8.5
  7. 如果執行gcc-5 -v 就會看到原本
  8. 如果要全部變回來 sudo update-alternatives --remove gcc /usr/bin/gcc-4.8

循環登入問題
  1. 若不小心刪除或更新顯示卡的driver,就會造成螢幕解析度超大,GUI界面登入後不斷跳出要求重新登入的問題。例如安裝gnome-editor時居然也會出問題。
  2. 開機後,持續壓著shift按鈕,就會進入grub
  3. 選擇advance 繼續選擇 recovery mode (目前是 lunux 4.15.0-36-generic)  繼續選擇 root
  4. mount -o remount,rw /   參考說明
  5. mount --all
  6. sudo apt-get remove --purge nvidia-*
  7. reboot
  8. 進入系統後再重新安裝
  9. 不過,沒有用,下次的安裝還是會造成nvidia套件的問題,所以重灌了三次,唉
  10. 另外,軟體 text-editor 千萬不要裝,裝了似乎就會引起循環登入問題

File System Mount
  1. fisk -l 檢視目前硬碟狀況,條列每一個接上的硬碟
  2. 目前/dev/nvme0n1 是SSD 又分成三個 Linux(最大), Extended, Linux swap
  3. 目前/dev/sda 是傳統硬碟
  4. 目前/dev/sdb 是USB碟
  5. 目前/dev/sdb1,2,3,4 不知道是什麼
  6. ls /dev/[sh]d*   例如現在的/dev/sda  /dev/sda1  /dev/sda2  /dev/sda5  /dev/sdb  用不到
  7. df -h 顯示出目前硬碟的掛載狀態
  8. fdisk -l /dev/sda 可以確定是傳統硬碟
  9. fdisk /dev/sda
  10. p: 列出目前全部的partition
  11. d: 刪除某個partition
  12. n: 新增分割區,輸入 n 按 Enter。
  13. 選擇要建立 extended 還是 primary partition,因為我的硬碟全部只要一個分割區,所以我選 primary,輸入 p 按 Enter。
  14. 選擇 Partition number,primary 分割區最多可以有四個,隨便選都可以,不過建議選 1,免得以後看起來很奇怪,輸入 1 按 Enter。
  15. 輸入開始的 cylinder,用預設值就可以了,直接按 Enter。
  16. 輸入結束的 cylinder,若是要用最大的容量,就直接按 Enter,若是要指定分割區的大小,就用 +size{K,M,G} 的形式指定,例如指定為 100G 的大小就輸入 +100G 再按 Enter。
  17. 最後將分割表寫入硬碟,輸入 w 再按 Enter。
  18. 若是要離開 fdisk 就輸入 q 按 Enter 就可以了。
  19. format : mkfs -t ext4 /dev/sda1
  20. more /etc/fstab 硬碟的 UUID 就像是它的身分證字號,每一顆硬碟都可不同的 UUID,使用 UUID 來指定磁碟就不會因為安裝的順序不同而產生變化,這樣做的好處是若是當磁碟常常要拔來拔去時,系統管理者不用再去更改 fstab 的設定,系統會自動尋找對應的 UUID 來掛載。
  21. sudo blkid 可以看到每個硬碟的UUID,利用這個資料,更新 /etc/fstab
  22. 更新 /etc/fstab 依樣畫葫蘆,新增加一行 UUID=ac001b70-682c-454d-8b96-dca2fb5da992 /data2          ext4    defaults        0 1
  23. 重新開機 mount /data2 可是最後發現 根本不需要這麼麻煩 系統似乎會自動抓取

定時備份
  1. 實在無法解決nvidia的衝突問題,決定安裝timeshift連結,定時備份可以回朔
  2. 系統 軟體和更新 關閉全部的通知機制 參考
  3. 最近一次是因為pip -force 會自動刪除掉許多模組,導致下次無法順利開機,解決方式是,用ubuntu安裝USB,設定為開機磁區,進入後,起動內建的GNOME UBUNTU,然後
    apt-add-repository -y ppa:teejee2008/ppa
    apt-get update
    apt-get install timeshift
    然後起動timeshift,找到1T那個槽,選擇最新的檔案,選第一個,然後繼續就會出現一堆add delete update的表,反正不能改,就繼續進行,然後重開機就完成

JAVA
  1. sudo add-apt-repository ppa:webupd8team/java
  2. sudo apt-get update
  3. sudo apt-get install oracle-java8-installer
  4. sudo apt-get install oracle-java8-set-default
  5. java -version

Android studio安裝
  1. Eclipse用了好多年,配合安裝Ubuntu,拾起Studio。參考資料
  2. download 約1G,已經放在1T硬碟
  3. unzip,執行bin裡面的studio.sh,這邊需要透過terminal來安裝。cd android-studio/bin/./ studio.sh
  4. install some files ( UI automatically )
  5. UI launcher open Android Studio,click on Tools menu / Create Desktop Entry. / This should create an entry on the dash.
  6. try to build it. Studio automatically download the file in background ( SDK ... once )
  7. 過程中原本是要放在/usr/local,不過出了很多問題,乾脆就留在目前usr目錄
  8. build還是有問題,發現是sdk沒有經過同意 如下 ~/Android/Sdk/tools/bin$ ./sdkmanager --licenses都選擇同意
  9. 編譯成功,無法放在simulator上執行,重新開啟一個專案執行run,會出現需要simulator,選擇一個後,花很長時間下載,仍不成功
  10.  調整bios 將cpu設定成可以允許vt,模擬器顯示成功
  11. adb 位置在 /home/kayjean/Android/Sdk/platform-tools
  12. 自己的N8手機,開啟攝定,版本部分按很多下後,就會進入開發者模式,再進入開發者模式,允許USB偵錯。接上ubuntu,使用adb devies成功
  13. 實際安裝進手機時,似乎版本不合,取得新版本後成功
  14. 最基本的範例是my application2

Android studio使用
  1. gradle架構,最大的範圍是project,裡面包含許多小的module,各個小的module(可能是app也可能是lib)都會有自己的build.gradle,參考資料
  2. 一個project要把各個module包含起來,就要使用file的project structure
  3. 沒有DDMS了,位置在SDK/tools/monitor 代替

Android studio NDK
  1. 目前系統安裝v18,如果從中文頁面進入是16b,16b可順利編譯但每次啟動android studio會跳出更新訊息。
  2. 遇到No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android錯誤訊息,就參考,到這裡,下載不同版本
  3. NDK安裝方式
  4. 總之,以上的方式都太過複雜,真正嘗試後,還是有問題。最簡單方式是程式啟動時,依照wizard指示,選擇有c++ support的選項,就可完成(雖然沒有.h檔案)。例如my application3

 

WebCam

  1. 以程式控制webcam,最基本為v4l2,基本範圍為C
  2. 進階為OpenCV,又可以區分成基本的C語言
  3. OpenCV - Python
  4. OpenCV - Python Thread版本


Ubuntu上使用Github

  1. 為了能夠多地點儲存以及rollback開始使用github
  2. sudo apt-get install git
  3. git config --global user.name "kayjean"
    git config --global user.email "kayjean@gmail.com"
  4. mkdir github    cd github/
  5. git init Mytest  (會新增實體目錄Mytest)
  6. cd Mytest 接下來在這個目錄中操作
  7. gedit README type some messages
  8. gedit sample.c type some messages
  9. git add README
  10. git add sample.c
  11. git status 可以看到目前還有哪些沒有被commit
  12. git commit -m "my first commit"
  13. create a repository on github with the same name using UI function( 內部測試,都設定為private模式)
  14. git remote add origin https://github.com/kayjean/Mytest.git
  15. git push -u origin master 輸入帳號密碼 完成上傳和sync的動作
  16. try to update sample.c or create a new file sample2.c
  17. git add .
  18. git commit -m "my xxx commit" 重複上面push
  19. 取消:commit前,取消先前add的內容可以使用 git reset HEAD [filename 包括目錄]
  20. 取消:commit後,git log --oneline 看到最後一個動作的號碼 git reset e12最後一次號碼d8ef^
  21. 下一階段就是增添ignore目錄
  22. 下載github專案,拷貝URL後,到目錄下git clone 網址,會新增加那個目錄
  23. 其他參考  連結一  連結二  連結三

    沒有留言:

    張貼留言