想要把自己編譯的 lilyterm 設定為預設的 terminal,結果自己腦殘打了一行指令:

maple@maple-admin:~$ sudo update-alternatives --install /etc/alternatives/x-terminal-emulator x-terminal-emulator /usr/local/bin/lilyterm 0
update-alternatives: x-terminal-emulator 的連結,由 /usr/bin/x-terminal-emulator 重新命名為 /etc/alternatives/x-terminal-emulator

結果...

maple@maple-admin:~$ sudo update-alternatives --config x-terminal-emulator 
update-alternatives: 錯誤: 無法取得檔案 '/etc/alternatives/x-terminal-emulator' 的檔案資訊: 太多層級的符號連結檔

maple@maple-admin:~$ ls /etc/alternatives/x-terminal-emulator -lh
lrwxrwxrwx 1 root root 37  6月 15 10:35 /etc/alternatives/x-terminal-emulator -> /etc/alternatives/x-terminal-emulator

install 後面接的第一個參數是要建立 soft-link 的路徑,大多都是 /usr/bin/<<name>>。結果我打成了 /etc/alternatives/<<name>>,當然就 link 回自己了 Orz。

如果自己手動將 /etc/alternatives/x-terminal-emulator link 回去原本的設定 (例如: /usr/bin/lxterminal),就會出現以下錯誤:

maple@maple-admin:/etc/alternatives$ sudo ln -s /usr/bin/lxtermianl /etc/alternatives/x-terminal-emulator

maple@maple-admin:~$ sudo update-alternatives --config x-terminal-emulator 
替代項目 x-terminal-emulator(提供 /etc/alternatives/x-terminal-emulator)有 7 個選擇。

  選項       路徑                   優先權  狀態
------------------------------------------------------------
  0            /usr/bin/lxterminal       40        自動模式
  1            /usr/bin/koi8rxterm       20        手動模式
  2            /usr/bin/lxterm           30        手動模式
  3            /usr/bin/lxterminal       40        手動模式
  4            /usr/bin/uxterm           20        手動模式
  5            /usr/bin/xterm            20        手動模式
  6            /usr/bin/xvt              10        手動模式
  7            /usr/local/bin/lilyterm   0         手動模式

按 [enter] 保留目前選項 [*],或輸入選項編號:0
update-alternatives: 以 /usr/bin/lxterminal 提供 自動模式 中的 /etc/alternatives/x-terminal-emulator (x-terminal-emulator)
update-alternatives: 錯誤: 無法將 `/etc/alternatives/x-terminal-emulator.dpkg-tmp' 安裝為 `/etc/alternatives/x-terminal-emulator': 沒有此一檔案或目錄

Solution

解決的方法就是先移除錯誤的 alternative

maple@maple-admin:~$ sudo rm /etc/alternatives/x-termianl-emulator
maple@maple-admin:~$ sudo update-alternatives --remove-all x-terminal-emulator

然後重新安裝

maple@maple-admin:/etc/alternatives$ sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/local/bin/lilyterm 50
update-alternatives: 以 /usr/local/bin/lilyterm 提供 自動模式 中的 /usr/bin/x-terminal-emulator (x-terminal-emulator)
maple@maple-admin:/etc/alternatives$ sudo update-alternatives --install /usr/bin/x-terminal-emulator x-terminal-emulator /usr/bin/lxterminal 40
maple@maple-admin:/etc/alternatives$ sudo update-alternatives --config x-terminal-emulator 
替代項目 x-terminal-emulator(提供 /usr/bin/x-terminal-emulator)有 2 個選擇。

  選項       路徑                   優先權  狀態
------------------------------------------------------------
* 0            /usr/local/bin/lilyterm   50        自動模式
  1            /usr/bin/lxterminal       40        手動模式
  2            /usr/local/bin/lilyterm   50        手動模式

按 [enter] 保留目前選項 [*],或輸入選項編號:
maple@maple-admin:/etc/alternatives$

這樣就修復完畢拉~~~

Comments

comments powered by Disqus