2015年3月25日 星期三

用 pkg-config 查詢「設定 Eclipse 使用函式庫 (library)」所需的參數

之前寫過幾篇有關用 Eclipse 開發程式的文章,關於所使用的函式庫(Library)如何正確設定,使得 Eclipse 可以編譯程式、鏈結函數庫以產生『可執行』檔案(:參考篇末文章列表)。
  由於函式庫的發展也會加入新功能,安裝時也可能會因系統不同而放在不同目錄。每次版本有更新,可能就要找一次這些參數的正確設定值,也是一件麻煩的事。
  之前的發文中有一篇提到 Linux 的工具程式 pkg-config,剛好最近要使用新的函式庫開發程式,就對 pkg-config 這個程式深入研究一下。
  一般在使用 Eclipse 開發程式時,有幾個『專案屬性』的設定與函式庫的正確使用有極大關係。在『專案瀏覽器』選擇欲設定的專案,按【滑鼠右鍵】點選選單下方的《內容》,跳出『專案內容』的設定視窗。在左欄的點選《C/C++ Build》→《Setting》,接著在右方『Tool Settings』分頁下方,分別位於
  • 《GCC C Compiler》→《Includes》,在右欄上方的『Include paths (-I)』
  • 《GCC C Linker》→《Libraries》,在右欄上方的『Libraries (-l)』
  • 《GCC C Linker》→《Libraries》,在右欄下方的『Libraries search path (-L)』
這三個地方,其中
  • 第一個參數(-I)是「GCC 編譯器」的參數,指定程式中引用的「標頭檔」目錄。
  • 第二個參數(-l)是「GCC 鏈結器」的參數,指定所引用「函式庫」的所在目錄。
  • 第三個參數(-L)也是「GCC 鏈結器」的參數,指定搜尋所引用「函式庫」目錄的起點。

2015年3月24日 星期二

解決「Fedora 21 的 Eclipse Luna 未正確顯示中文」的問題

試著在 Fedora 21 安裝 Eclipse 來用,安裝完成後由《應用程式》→ 《軟體開發》點選《Eclipse》。發現 Fedora 21 已經收錄新版的 Eclipse Luna 了。
再稍等片刻,跳出一個選擇『工作區』的視窗,
正想點下去,奇怪!怎麼是「簡體中文」?

2015年3月18日 星期三

恢復「Fedora 21 工作站」版的「防火牆」保護

Fedora 一向給我的印象是:安裝完成後,預設的安全防護相當足夠,甚至會影響使用者對某些『服務』的修改(如:更改 SSH 的埠號時,除了「防火牆」外也要動到「SELinux」)。這些不便對一般使用者而言,不一定會受到太大的影響。基於安全考量,筆者是支持這種作法。
  但是,這個情況在「Fedora 21 工作站」版卻有些不同,「防火牆」的預設值竟然是所有埠號全部開啟的狀況。
在「MATE 桌面」的查詢步驟主要有兩個地方,一個是在「網路卡」設定
  • 從『程式選單』的《系統》→《偏好設定》→《系統》點選《網路連線》,出現一個設定「網路連線」的視窗。
  • 接著,點選網卡,按【編輯】。在【一般】這個分頁內的『防火牆地帶』可以看到,預設值為『預設』。
另一個是「防火牆」的設定,
  • 由『程式選單』的《系統》→《管理》點選《防火牆》,出現設定「防火牆」的視窗。
  • 從《功能選單》→《選項》點選《變更預設界域》,會跳出一個名為『預設界域』的視窗,可以看到『預設界域』為『FedoraWorkstation』,按【取消】關閉視窗。
  • 點選底下『界域』清單的『FedoraWorkstation』,在右方的『連接埠』分頁,可以看到開啟的埠號無論是 TCP 或 UDP 都是從 1025 到 65535,其意思就是說『全部開放』,也就是說『形同虛設』。

2015年3月14日 星期六

在 Fedora 系統以手動方式『重新取得網路位址』

在測試系統時,有時要手動讓電腦重新取得一次網路位址(IP address)。除了圖型化的操作方法外,也有文字式的命令『dhclient』。本文將就『如何重新取得網路位址』這兩種操作做個整理。

一、圖型化介面

從桌面上方的工具列之右側,在『』上按【滑鼠左鍵】會跳出一個下拉選單如下:
點選欲『重新取得網路位址』的網路卡,則該網路卡立即
  • 將該網路卡強制斷線,此時,所有處於連接狀態的網路連線都會斷線
  • 該網路卡將再重新取得網路位址。
接下來的新建立連線就會以新的網路位址重新建立。

2015年3月12日 星期四

Fedora 21 不能安裝 NVIDIA FX 5200 原廠驅動程式

升級到 Fedora 21 後想再編譯 nVIDIA FX 5200 顯示卡的驅動程式,卻無法成功編譯,之前試過的方法也都無效。就轉而找尋提否有其它原因,就它們的版本先查起:
  • Fedora 所用的 X Server 版本為 1.16.3(註:用『Xorg -version』查得)。
  • nVIDIA 173.1439 所支援的 X Server 版本只到 1.15,且未再更新。
  • 「RPM Fusion 套件資料庫」也沒有 nVIDIA 173.1439 驅動程式的已編譯模組可下載。
基於這幾個原因,可以得到一個結論就是:
nVIDIA FX 5200 只能使用 nouveau 這個由社群發展的驅動程式
不過,這一陣子的使用經驗,nouveau 倒也相當穩定、效能也不算太差。

已測試版本:

  • Fedora: 21

參考資料:

2015年3月10日 星期二

解決「VLC 更新,因關聯模組 libgpg-error.so 版本不合而失敗」問題

VLC 是 VideoLAN 社群所開發的多媒體播放程式(:要先加裝「RPM Fusion 套件資料庫」),因其所使用的相關套件之故,在較老舊電腦的效能表現也相當不凡。若是電腦需要使用「MATE 桌面」環境,那麼用 VLC 播放多媒體是不錯的選擇。
  最近的更新中,VideoLAB 社群釋出的 VLC 2.2 正式版,也出現在「RPM Fusion 套件資料庫」的更新列表中。但是,更新時卻出現這樣的錯誤訊息
[root@Celeron-D ~]# yum update vlc
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package vlc.x86_64 0:2.2.0-0.2.fc21 will be updated
---> Package vlc.x86_64 0:2.2.0-1.fc21 will be an update
--> Processing Dependency: vlc-core(x86-64) = 2.2.0-1.fc21 for package: vlc-2.2.0-1.fc21.x86_64
--> Running transaction check
---> Package vlc-core.x86_64 0:2.2.0-0.2.fc21 will be updated
---> Package vlc-core.x86_64 0:2.2.0-1.fc21 will be an update
--> Processing Dependency: libgpg-error.so.0(GPG_ERROR_1.0)(64bit) for package: vlc-core-2.2.0-1.fc21.x86_64
--> Finished Dependency Resolution
Error: Package: vlc-core-2.2.0-1.fc21.x86_64 (rpmfusion-free-updates)
           Requires: libgpg-error.so.0(GPG_ERROR_1.0)(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

2015年3月7日 星期六

有關「根目錄」出現檔名為 core.xxxxx 的問題

在『根目錄』出現一個檔案,名稱為『core.xxxxx』(其中 xxxxx 為數字)大小為 31297536 位元組。以前的系統中,偶而也會出現幾個,但不影響系統運作,也就不理會它。這次的出現,就順便做個記錄,方便以後參考。
  回想一下之前的運作情形,雖說 Linux 不容易當機,但是所用的 Fedora 分支常引入一些新的套件做測試。也因此偶而會有某個服務當機的時候,但是整個系統當機的情形,的確是很少見。
  在這些少數當機的情形下,系統會將當機當下的系統記憶體內容存下(即『core dump (核心傾印)』),以利事後分析發生的原因。而所存下來的記憶體內容就記錄在『core.xxxxx』這些檔案中,大小與當下系統所佔的大小有關,不一定每次都一樣。
  知道出現這些檔案的原因,而重新啟動服務或重開機後,運作也不受影響。因此,將來有需要深入研究這些檔案內容時,再做進一步分析。目前的處理方法為:
  • 記錄當機時,正在操作的程式。下次再操作時,要多注意。
  • 過些時候,若不再出現類似的檔案時,再把它們刪掉。
  • 將這些檔案回傳 Fedora 開發團隊,提供其除錯的參考。

已測試版本:

  • Fedora: 20, 21

參考資料: