從 deb 系統取得套件


實例: 尋找 ghemical 的相依套件

slax 與 slackware 的優點是輕薄短小; 缺點則是套件庫較小。 為此, 有時候需要到別的版本去抓好用的套件。 以下的例子, 是如何將 ubuntu 的 ghemical 套件, 移植到 slax 底下。 首先登入您的 ubuntu 電腦。

        apt-get autoremove              # 刪除系統內所有不需要的套件
        apt-get remove ghemical         # 刪除 ghemical 套件
        apt-get autoremove              # 刪除專為 ghemical 而安裝的相依套件
        apt-get install ghemical        # 再把 ghemical 及其相依套件裝回來

第二次 autoremove 時, 所印出來的套件名稱, 就是 ghemical 所需要用到的套件, 請記下來。 切換到 /var/cache/apt/archive 目錄底下, 把這些套件的 .deb 檔拷貝到隨身碟上。 把這些 .deb 檔拿到您的 slax 電腦, 用 deb2lzm 轉成 slax 模組, 並放到 .../slax//modules/ 底下。 如上一篇所述, 用 activate 指令啟動新的套件。 但是這還不一定能動。 在命令列下 ghemical, 可能會出現錯誤訊息, 說某某函式庫找不到。 請下:

        which ghemical
        ldd $(which ghemical)
        ldd $(which ghemical) | grep found

找出欠缺的函式庫, 例如 libblas.so.3gf 與 liblapack.so.3gf 等等。 [註: 如果出現 "not a dynamic executable" 的錯誤訊息, 表示執行檔並非二進位檔。 例如 ldd /usr/bin/blender 就會如此。 請用 file /usr/bin/blender 查看, 若是 shell script text executable, 可以用 less 或 nano 或 vim 閱讀它的內容, 通常在檔案最下面會找到真正執行檔的名稱。 以 blender 為例, 發現執行檔是 blender-bin, 所以對 blender-bin 再從 which blender-bin 做起。] 現在回到 ubuntu 機器底下, 下

        ldd $(which ghemical) | grep blas
        dpkg -S /usr/lib/libblas.so.3gf

找出 ubuntu 底下的套件名稱。 然後到 /var/cache/apt/archives/ 底下, 把這些 deb 也抓去 slax 轉檔。 如果 /var/cache/apt/archives/ 底下已經找不到這個 deb (已被清除掉了), 可以強迫重新下載一次: apt-get -d install --reinstall libblas3gf 這樣 /var/cache/apt/archives/ 底下就可以看到 .deb 檔了。