Go-Ethereum

如何為geth設置別名?

  • November 3, 2016

我通過從原始碼建構(如此處所述)安裝geth在 64 位 Ubuntu 16.04 上,我可以按如下方式執行程序:

~$ 'path_to/go-ethereum/build/bin/geth' ...

但是,我想只用 command 執行它geth。我嘗試在 ./bashrc 中設置別名:

alias geth='path_to/go-ethereum/build/bin/geth'

現在,當我geth在終端中鍵入時它可以工作,但是,-我認為- 當腳本呼叫命令時它會失敗。就我而言,該命令populus deploy Greeter --chain local_test產生如下錯誤:

 ...
 File "/usr/local/lib/python2.7/dist-packages/geth/accounts.py", line 133, in ensure_account_exists
   accounts = get_accounts(data_dir, **geth_kwargs)
 File "/usr/local/lib/python2.7/dist-packages/geth/accounts.py", line 31, in get_accounts
   stderrdata,
ValueError: Error trying to list accounts
Command    : nice -n 20 geth --rpc --rpcaddr 127.0.0.1 --rpcport 8545 --rpcapi admin,debug,eth,miner,net,personal,shh,txpool,web3,ws --ws --wsaddr 127.0.0.1 --wsport 8546 --wsapi admin,debug,eth,miner,net,personal,shh,txpool,web3,ws --datadir /home/me/populus/chains/local_test --maxpeers 0 --networkid 1234 --port 30303 --ipcpath /home/me/populus/chains/local_test/geth.ipc --ipcapi admin,debug,eth,miner,net,personal,shh,txpool,web3,ws --verbosity 5 --unlock 0 --password /usr/local/lib/python2.7/dist-packages/geth/default_blockchain_password --nodiscover --mine --minerthreads 1 account list
Return Code: 127
stdout: N/A
stderr:
`nice: ‘geth’: No such file or directory
`

最後,我嘗試使用 安裝 geth npm,但是在安裝了一系列 - 可能順序錯誤的 - 包安裝後,當我呼叫 時sudo apt-get install ethereum,我收到此錯誤:

The following packages have unmet dependencies:
ethereum : Depends: geth but it is not going to be installed
           Depends: bootnode but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

當我嘗試使用 預先安裝 geth 時sudo apt-get install geth,出現以下錯誤:

The following packages have unmet dependencies:
geth : Depends: ttf-ancient-fonts but it is not installable

該問題已在此處討論過,但建議的解決方案(sudo apt-get update && sudo apt-get upgrade安裝前)對我不起作用,所以我被困在這一點上。

我應該嘗試清理東西並安裝npm,還是有辦法讓它與這個版本一起工作?任何幫助,將不勝感激。

謝謝,

1 設置別名

您的別名不適用於腳本。由於腳本只需設置一次,您只需對執行檔的完整路徑名進行編碼即可。

否則,您可以:

  1. geth為in創建軟連結$HOME/bin
cd $HOME/bin
ln -s path_to/go-ethereum/build/bin/geth geth
  1. geth為in創建軟連結/usr/local/bin
cd /usr/local/bin
ln -s path_to/go-ethereum/build/bin/geth geth

如果您已經創建了一個$HOME/bin目錄,如果您有從該目錄執行的執行檔,並且您的腳本可以訪問此目錄中的執行檔(如果您從您的使用者帳戶執行腳本),請使用上面的 1.。

否則使用上面的 2.。


安裝

來自Ubuntu 的安裝說明

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

您是否以正確的順序執行了上述所有命令?

引用自:https://ethereum.stackexchange.com/questions/9808