Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

さくらのレンタルサーバスタンダードにgitをインストールする

参考にさせて頂いたページ

さくらのレンタルサーバ(スタンダード)にGitをインストール - テクスト讃歌

さくらのレンタルサーバにgitを入れる : pthread_create 云々 | DOOM! DOOMER!! DOOMEST!?

まずはログイン

さくらインターネットのレンタルサーバーにmacのターミナルでログインする - MOTOMICHI WORKS BLOG

CentOSなどyumが使える環境ではこちら

vagrantその13 yumでインストールしたgitのバージョンを上げるというか、アンインストールしてソースからインストールしなおす - MOTOMICHI WORKS BLOG

wgetでgitのソースコードを取得する

参考ページさくらのレンタルサーバ(スタンダード)にGitをインストール - テクスト讃歌にならって以下のようにコマンドを実行した。

cd ~
mkdir local
mkdir gitinstall
cd gitinstall
wget http://git-core.googlecode.com/files/git-1.9.0.tar.gz
ls

そうすると

git-1.9.0.tar.gz

と表示されるので、ダウンロードされたのが確認できる。

ダウンロードするgitのバージョンについては、都度最新のものを取得するのが良さそう。

解凍する

tar xjvf git-1.9.0.tar.gz
ls

と実行して、

git-1.9.0          git-1.9.0.tar.gz

と表示されて、解凍されたのがわかる。

ソースコードからgitをビルドするけどエラーが出た

失敗したけど、一応記録として残しておく

gmake

を実行した。

gmake
GIT_VERSION = 1.9.0
    * new build flags
    CC credential-store.o
    * new link flags
    CC abspath.o

〜中略〜

    CC xdiff/xpatience.o
    CC xdiff/xhistogram.o
    AR xdiff/lib.a
    LINK git-credential-store
libgit.a(run-command.o): In function `start_async':
/home/utility/gitinstall/git-1.9.0/run-command.c:719: undefined reference to `pthread_create'
libgit.a(preload-index.o): In function `preload_index':
/home/utility/gitinstall/git-1.9.0/preload-index.c:94: undefined reference to `pthread_create'
gmake: *** [git-credential-store] Error 1

gitのビルドを再度やる

ここからはさくらのレンタルサーバにgitを入れる : pthread_create 云々 | DOOM! DOOMER!! DOOMEST!?を参考にさせて頂いた。

./configure --prefix=$HOME/local--enable-pthreads=-pthread

を実行した。
--prefixで指定したディレクトリにビルドするみたい。
次に、

gmake all

を実行した。

gmake all
    * new build flags
    CC credential-store.o
    CC abspath.o
    CC advice.o

〜中略〜

    GEN bin-wrappers/test-urlmatch-normalization
    GEN bin-wrappers/test-wildmatch
    GEN git-remote-testgit

みたいな感じで表示されて、エラーは出なかったので今度は大丈夫っぽい。

次に

gmake install

gitコマンド使えるか確認してみる

git --version

を実行してみたら

git version 1.9.3

と表示された。

最初に作成したlocalディレクトリの中身は

さっき作成したlocalディレクトリはというとlocalディレクトリの中で

ls -a

を実行してみると

.     ..     bin     lib     lib exec     share

と表示された。

treeみたいに表示してみる

Linux - tree コマンドが無い環境で tree コマンドを実現 - Qiitaを参考にさせて頂いて

pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/|  /g'

を実行したら

/home/utility/local
|--bin
|  |--git
|  |--git-cvsserver
|  |--git-receive-pack
|  |--git-shell
|  |--git-upload-archive
|  |--git-upload-pack
|  |--gitk
|--lib
|  |--perl5
|  |  |--5.8
|  |  |  |--mach
|  |  |  |  |--perllocal.pod
|  |  |--site_perl
|  |  |  |--5.8
|  |  |  |  |--Error.pm
|  |  |  |  |--Git
|  |  |  |  |--Git.pm
|  |  |  |  |  |--I18N.pm
|  |  |  |  |  |--IndexInfo.pm
|  |  |  |  |  |--SVN
|  |  |  |  |  |--SVN.pm
|  |  |  |  |  |  |--Editor.pm
|  |  |  |  |  |  |--Fetcher.pm
|  |  |  |  |  |  |--GlobSpec.pm
|  |  |  |  |  |  |--Log.pm
|  |  |  |  |  |  |--Memoize
|  |  |  |  |  |  |  |--YAML.pm
|  |  |  |  |  |  |--Migration.pm
|  |  |  |  |  |  |--Prompt.pm
|  |  |  |  |  |  |--Ra.pm
|  |  |  |  |  |  |--Utils.pm
|  |  |  |  |--mach
|  |  |  |  |  |--auto
|  |  |  |  |  |  |--Git
|  |  |  |  |  |  |  |--.packlist
|--libexec
|  |--git-core
|  |  |--git
|  |  |--git-add
|  |  |--git-add--interactive
|  |  |--git-am
|  |  |--git-annotate
|  |  |--git-apply
|  |  |--git-archimport
|  |  |--git-archive
|  |  |--git-bisect
|  |  |--git-bisect--helper
|  |  |--git-blame
|  |  |--git-branch
|  |  |--git-bundle
|  |  |--git-cat-file
|  |  |--git-check-attr
|  |  |--git-check-ignore
|  |  |--git-check-mailmap
|  |  |--git-check-ref-format
|  |  |--git-checkout
|  |  |--git-checkout-index
|  |  |--git-cherry
|  |  |--git-cherry-pick
|  |  |--git-citool
|  |  |--git-clean
|  |  |--git-clone
|  |  |--git-column
|  |  |--git-commit
|  |  |--git-commit-tree
|  |  |--git-config
|  |  |--git-count-objects
|  |  |--git-credential
|  |  |--git-credential-cache
|  |  |--git-credential-cache--daemon
|  |  |--git-credential-store
|  |  |--git-cvsexportcommit
|  |  |--git-cvsimport
|  |  |--git-cvsserver
|  |  |--git-daemon
|  |  |--git-describe
|  |  |--git-diff
|  |  |--git-diff-files
|  |  |--git-diff-index
|  |  |--git-diff-tree
|  |  |--git-difftool
|  |  |--git-difftool--helper
|  |  |--git-fast-export
|  |  |--git-fast-import
|  |  |--git-fetch
|  |  |--git-fetch-pack
|  |  |--git-filter-branch
|  |  |--git-fmt-merge-msg
|  |  |--git-for-each-ref
|  |  |--git-format-patch
|  |  |--git-fsck
|  |  |--git-fsck-objects
|  |  |--git-gc
|  |  |--git-get-tar-commit-id
|  |  |--git-grep
|  |  |--git-gui
|  |  |--git-gui--askpass
|  |  |--git-hash-object
|  |  |--git-help
|  |  |--git-http-backend
|  |  |--git-imap-send
|  |  |--git-index-pack
|  |  |--git-init
|  |  |--git-init-db
|  |  |--git-instaweb
|  |  |--git-log
|  |  |--git-ls-files
|  |  |--git-ls-remote
|  |  |--git-ls-tree
|  |  |--git-mailinfo
|  |  |--git-mailsplit
|  |  |--git-merge
|  |  |--git-merge-base
|  |  |--git-merge-file
|  |  |--git-merge-index
|  |  |--git-merge-octopus
|  |  |--git-merge-one-file
|  |  |--git-merge-ours
|  |  |--git-merge-recursive
|  |  |--git-merge-resolve
|  |  |--git-merge-subtree
|  |  |--git-merge-tree
|  |  |--git-mergetool
|  |  |--git-mergetool--lib
|  |  |--git-mktag
|  |  |--git-mktree
|  |  |--git-mv
|  |  |--git-name-rev
|  |  |--git-notes
|  |  |--git-p4
|  |  |--git-pack-objects
|  |  |--git-pack-redundant
|  |  |--git-pack-refs
|  |  |--git-parse-remote
|  |  |--git-patch-id
|  |  |--git-prune
|  |  |--git-prune-packed
|  |  |--git-pull
|  |  |--git-push
|  |  |--git-quiltimport
|  |  |--git-read-tree
|  |  |--git-rebase
|  |  |--git-rebase--am
|  |  |--git-rebase--interactive
|  |  |--git-rebase--merge
|  |  |--git-receive-pack
|  |  |--git-reflog
|  |  |--git-relink
|  |  |--git-remote
|  |  |--git-remote-ext
|  |  |--git-remote-fd
|  |  |--git-remote-testsvn
|  |  |--git-repack
|  |  |--git-replace
|  |  |--git-request-pull
|  |  |--git-rerere
|  |  |--git-reset
|  |  |--git-rev-list
|  |  |--git-rev-parse
|  |  |--git-revert
|  |  |--git-rm
|  |  |--git-send-email
|  |  |--git-send-pack
|  |  |--git-sh-i18n
|  |  |--git-sh-i18n--envsubst
|  |  |--git-sh-setup
|  |  |--git-shell
|  |  |--git-shortlog
|  |  |--git-show
|  |  |--git-show-branch
|  |  |--git-show-index
|  |  |--git-show-ref
|  |  |--git-stage
|  |  |--git-stash
|  |  |--git-status
|  |  |--git-stripspace
|  |  |--git-submodule
|  |  |--git-svn
|  |  |--git-symbolic-ref
|  |  |--git-tag
|  |  |--git-unpack-file
|  |  |--git-unpack-objects
|  |  |--git-update-index
|  |  |--git-update-ref
|  |  |--git-update-server-info
|  |  |--git-upload-archive
|  |  |--git-upload-pack
|  |  |--git-var
|  |  |--git-verify-pack
|  |  |--git-verify-tag
|  |  |--git-web--browse
|  |  |--git-whatchanged
|  |  |--git-write-tree
|  |  |--mergetools
|  |  |  |--araxis
|  |  |  |--bc3
|  |  |  |--codecompare
|  |  |  |--deltawalker
|  |  |  |--diffmerge
|  |  |  |--diffuse
|  |  |  |--ecmerge
|  |  |  |--emerge
|  |  |  |--gvimdiff
|  |  |  |--gvimdiff2
|  |  |  |--kdiff3
|  |  |  |--kompare
|  |  |  |--meld
|  |  |  |--opendiff
|  |  |  |--p4merge
|  |  |  |--tkdiff
|  |  |  |--tortoisemerge
|  |  |  |--vimdiff
|  |  |  |--vimdiff2
|  |  |  |--xxdiff
|--share
|  |--git-core
|  |  |--templates
|  |  |  |--branches
|  |  |  |--description
|  |  |  |--hooks
|  |  |  |  |--applypatch-msg.sample
|  |  |  |  |--commit-msg.sample
|  |  |  |  |--post-update.sample
|  |  |  |  |--pre-applypatch.sample
|  |  |  |  |--pre-commit.sample
|  |  |  |  |--pre-push.sample
|  |  |  |  |--pre-rebase.sample
|  |  |  |  |--prepare-commit-msg.sample
|  |  |  |  |--update.sample
|  |  |  |--info
|  |  |  |  |--exclude
|  |--git-gui
|  |  |--lib
|  |  |  |--about.tcl
|  |  |  |--blame.tcl
|  |  |  |--branch.tcl
|  |  |  |--branch_checkout.tcl
|  |  |  |--branch_create.tcl
|  |  |  |--branch_delete.tcl
|  |  |  |--branch_rename.tcl
|  |  |  |--browser.tcl
|  |  |  |--checkout_op.tcl
|  |  |  |--choose_font.tcl
|  |  |  |--choose_repository.tcl
|  |  |  |--choose_rev.tcl
|  |  |  |--class.tcl
|  |  |  |--commit.tcl
|  |  |  |--console.tcl
|  |  |  |--database.tcl
|  |  |  |--date.tcl
|  |  |  |--diff.tcl
|  |  |  |--encoding.tcl
|  |  |  |--error.tcl
|  |  |  |--git-gui.ico
|  |  |  |--index.tcl
|  |  |  |--line.tcl
|  |  |  |--logo.tcl
|  |  |  |--merge.tcl
|  |  |  |--mergetool.tcl
|  |  |  |--msgs
|  |  |  |  |--bg.msg
|  |  |  |  |--de.msg
|  |  |  |  |--el.msg
|  |  |  |  |--fr.msg
|  |  |  |  |--hu.msg
|  |  |  |  |--it.msg
|  |  |  |  |--ja.msg
|  |  |  |  |--nb.msg
|  |  |  |  |--pt_br.msg
|  |  |  |  |--ru.msg
|  |  |  |  |--sv.msg
|  |  |  |  |--zh_cn.msg
|  |  |  |--option.tcl
|  |  |  |--remote.tcl
|  |  |  |--remote_add.tcl
|  |  |  |--remote_branch_delete.tcl
|  |  |  |--search.tcl
|  |  |  |--shortcut.tcl
|  |  |  |--spellcheck.tcl
|  |  |  |--sshkey.tcl
|  |  |  |--status_bar.tcl
|  |  |  |--tclIndex
|  |  |  |--themed.tcl
|  |  |  |--tools.tcl
|  |  |  |--tools_dlg.tcl
|  |  |  |--transport.tcl
|  |  |  |--win32.tcl
|  |  |  |--win32_shortcut.js
|  |--gitk
|  |  |--lib
|  |  |  |--msgs
|  |  |  |  |--bg.msg
|  |  |  |  |--de.msg
|  |  |  |  |--es.msg
|  |  |  |  |--fr.msg
|  |  |  |  |--hu.msg
|  |  |  |  |--it.msg
|  |  |  |  |--ja.msg
|  |  |  |  |--pt_br.msg
|  |  |  |  |--ru.msg
|  |  |  |  |--sv.msg
|  |--gitweb
|  |  |--gitweb.cgi
|  |  |--static
|  |  |  |--git-favicon.png
|  |  |  |--git-logo.png
|  |  |  |--gitweb.css
|  |  |  |--gitweb.js

みたいな感じで表示された。