vim ~/.bashrc# 末尾に追加
export http_proxy=http://xxx.xxx.xxx.xxx:xxxxx
export HTTP_PROXY=${http_proxy}
export https_proxy=http://xxx.xxx.xxx.xxx:xxxxx
export HTTPS_PROXY=${https_proxy}
EDITOR=vim sudoedit /etc/apt/apt.confAcquire::http::Proxy "http://xxx.xxx.xxx.xxx:xxxx";
Acquire::https::Proxy "http://xxx.xxx.xxx.xxx:xxxx";
sudo apt install connect-proxy
vim ~/.ssh/configHost github.com
User git
HostName ssh.github.com
Port 443
ProxyCommand connect -H xxx.xxx.xxx.xxx:xxxxx %h %p
IdentityFile ~/.ssh/id_ed25519
- 日本語パッケージをインストールして、一度再起動
sudo apt -y install language-pack-ja && sudo update-locale LANG=ja_JP.UTF8 && sudo apt -y install manpages-ja manpages-ja-dev- profile内で行っているサービス起動をパスワード要求なしで起動するようsudoersを変更
sudo EDITOR=vim visudo%sudo ALL=NOPASSWD:/usr/sbin/service anacron start *
%sudo ALL=NOPASSWD:/usr/sbin/service anacron stop *
%sudo ALL=NOPASSWD:/usr/sbin/service ssh restart*
%sudo ALL=NOPASSWD:/usr/sbin/service rsyslog restart*
%sudo ALL=NOPASSWD:/usr/sbin/service cron restart*
その他必要パッケージインストール
sudo apt install build-essential
sudo apt install -y apt-file mlocatebuild-essentialの提案パッケージのうち必要そうなものをピックアップ ドキュメント系は、自動でインストールしたとものしてマークする
sudo apt install -y binutils-doc cpp-doc g++-multilib autoconf automake libtool flex bison gdb gcc-doc glibc-doc make-doc libstdc++-9-doc
sudo apt-mark auto libstdc++-9-doc binutils-doc cpp-doc g++-multilib gcc-doc glibc-doc make-docgit clone --branch=dev/slimming-down git@github.com:ljoaruma/dotfiles.git .dotfiles
cd .dotfiles
./setup.bashvim,gitの最新を取得&ビルド, xenv系をインストールして、各スクリプトをバージョン管理する
ビルド手順 必要なライブラリのインストールとセットアップ
sudo apt -y install libpython3-dev ruby-dev libncurses-dev gettext libtinfo-dev libacl1-dev libgpm-dev liblua5.1-dev
bash ~/.dotfiles/vim/setup-vim.sh
cd ~/usr/src/vimまたは
sudo apt build-dep vim
# E: You must put some 'source' URIs in your sources.list というエラーが発生した場合は
# /etc/apt/sources.list で deb-srcエントリーを有効化
bash ~/.dotfiles/vim/setup-vim.sh
cd ~/usr/src/vimソースの確認等して、以下
cd ~/usr/src/vim
bash ~/.dotfiles/vim/configure-vim.sh
make && make installcd ~/usr/src
git clone https://github.com/git/git.githttps://github.com/git/git.git
cd git
make configure
./configure --prefix=$HOME/usr
make
make all doc info
make install install-doc install-html install-infomake uninstallがないので、インストール時のログの取得と、 make prefix=/foo/bar install ... などとして、インストールするファイルのリストを作成すると便利
git fetch origin
mkdir -vp $HOME/var/tmp/git
make prefix=$HOME/var/tmp/git install install-doc install-html install-info
make clean
make distclean
GIT_INSTALL_VERSION="$(git tag -l --sort=-v:refname | head -n1)"
git rebase "${GIT_INSTALL_VERSION}"
find $HOME/var/tmp/git -type f -print0 | sed -z 's|'$HOME'/var/tmp/git|'$HOME'/usr|g' | xargs -0 rm -v
make configure
./configure --prefix=$HOME/usr
make
make all doc info
make install install-doc install-html install-info
mkdir -vp $HOME/var/tmp/git
make prefix=$HOME/var/tmp/git install install-doc install-html install-info
mkdir -vp .local-memo
find $HOME/var/tmp/git -type f > .local-memo/INSTALL-FILES-$(GIT_INSTALL_VERSION)cd ~/usr/src
git clone https://github.com/tmux/tmux.git
cd tmux.git
./configure --prefix ${HOME}/usr --enable-static
make
make install各バージョン管理モジュールは、~/usr/opt 以下にインストールする(HOMEフォルダ直下のフォルダを増やしたくない)
候補
- pyenv -> python/pipのバージョン管理に採用
- venv -> プロジェクトごとのバージョン管理に採用(pythonの標準モジュール)
- pyvenv
- virtualenv
mkdir -v $HOME/usr/opt/ && cd &_
git clone https://github.com/pyenv/pyenv.git $HOME/usr/opt/pyenv
cd $HOME/usr/opt/pyenv && src/configure && make -C src
# the sed invocation inserts the lines at the start of the file
# after any initial comment lines
sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/usr/opt/pyenv
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' ~/.profile
echo 'eval "$(pyenv init --path)"' >>~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.bashrcexample
pyenv install --list # インスト-ルするバージョンを選択
pyenv install xx.xx.xx # インストール
pyenv rehash
pyenv local|global xx.xx.xxUpgrade
cd $(pyenv root)
git pull
# or
git fetch
git tag
git switch vxx.x.xxconfigure: error: internal configure error for the platform triplet, please file a bug report
make: *** No targets specified and no makefile found. Stop.
Mac において上記エラーメッセージでインストールに失敗する場合、以下のパッチファイルを***.patchファイルとして保存して、インストール時に適用する。コマンドはcat foo.patch | pyenv install -p x.xx.xx
- pyenv installの-pオプションはビルド前にstdinからのパッチを適用する
diff --git configure configure
index e39c16eee2..2455870bf8 100755
--- configure
+++ configure
@@ -5202,10 +5202,6 @@ $as_echo "$as_me:
" >&6;}
fi
-
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5
$as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; }
cat >> conftest.c <<EOF
@@ -5334,6 +5330,10 @@ $as_echo "none" >&6; }
fi
rm -f conftest.c conftest.out
+if test x$PLATFORM_TRIPLET != xdarwin; then
+ MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+fi
+
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
@@ -9230,6 +9230,9 @@ fi
ppc)
MACOSX_DEFAULT_ARCH="ppc64"
;;
+ arm64)
+ MACOSX_DEFAULT_ARCH="arm64"
+ ;;
*)
as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5
;;候補
- rbenv+ruby-build -> 採用
- rvm
- cd等の組み込みコマンドを関数に差し替えるなどの動作が重たい
export RBENV_ROOT="$HOME/usr/opt/rbenv"
git clone https://github.com/rbenv/rbenv.git "$RBENV_ROOT" && cd $_ && src/configure && make -C src
echo 'export RBENV_ROOT="$HOME/usr/opt/rbenv"' >> ~/.bashrc
echo 'export PATH="$RBENV_ROOT/bin:$PATH"' >> ~/.bashrc
${RBENV_ROOT}/bin/rbenv init最後のrbenv initの出力に従って、bashrcを変更する。
ruby-build の インストール手順( 参考 )
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-buildruby-gemset の インストール手順( 参考 )
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/jf/rbenv-gemset.git "$(rbenv root)"/plugins/rbenv-gemset候補
- volta -> 採用 google trend(2022年)で決めた
- n
- nvm -> rvmと同様、cdなどの組み込みコマンドを関数に差し替えるなどのトリックが必要になる
- nodeenv
- nodebrew -> メンテナンスの頻度が落ちている
- fnm
- asdf
export VOLTA_HOME=$HOME/usr/opt/volta
mkdir -vp "${VOLTA_HOME}"
curl https://get.volta.sh | bash
# 再ログインして、voltaまでのPATHがとっている状態であることを確認したらlatestバージョンのツールセットが利用できる状態にしておく
volta install node@latest
volta install npm@latest
volta install yarn@latestCARGO_HOME と RUSTUP_HOME の環境変数がインストール先を制御
export RUSTUP_HOME=$HOME/usr/opt/rustup
export CARGO_HOME=$HOME/usr/opt/cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
vim ~/.bashrc
export RUSTUP_HOME=$HOME/usr/opt/rustup
export CARGO_HOME=$HOME/usr/opt/cargo
source "$CART_HOME/env"- 標準のモジュール機能
- gvm
- genv
- メンテナンスが最近あまりされていない
- vgo
- 日本語の情報が少ない
環境変数
- GOROOT
- go の SDKのパス
- GOPATH
- go1.11 以前は GOPATH/src以下のみ開発可能だった。現在はインストールしたパッケージなどを本パス以下に保管
- GOBIN
- go install でコンパイルしたバイナリのインストール先、未定義なら$GOPATH/bin, GOPATHも未定義なら$HOME/bin
# 環境を汚したくないときは、GOPATHを設定、バイナリインストール先をGOPATH/binにしない場合は、GOPATHを設定
export GOPATH=path/to
export GOBIN=go/path/bin
go install URLからhttp(s):// を除いた名前gitでソース取得する場合の簡単な手順
# 環境を汚したくないときは、GOPATHを設定、インストール先をGOPATH/binにしない場合は、GOBINを設定
export GOPATH=path/to
export GOBIN=go/path/bin
git path/to/foo.git
cd foo
# ネーミングルールはprefix/suffix, prefix はたとえば、githubで公開するなら、github.com/xxx の部分, suffixはパッケージ名とか
go mod init prefix/suffix
go mod tidy
go install
# または
go build対象ディレクトリ以下に、複数エンコーディングが混在している場合、今の所これしか使えないので。
# 環境を汚したくないときは、GOPATHを設定、インストール先をGOPATH/binにしない場合は、GOBINを設定
export GOPATH=path/to
export GOBIN=go/path/bin
git clone https://github.com/monochromegane/the_platinum_searcher.git
cd the_platinum_searcher/cmd/pt
# ネーミングルールはprefix/suffix, prefix はたとえば、githubで公開するなら、github.com/xxx の部分, suffixはパッケージ名とか
go mod init cmd/pt
go mod tidy
go install
# または
go build