programming

Debian testing(Buster)でGit環境を構築する

Gitのインストール

以前は’git-core’というパッケージ名でしたが、今は’git’という名前に変わっています。

それに加えてドキュメントもインストールします。

# apt install git git-doc

コマンドラインから’git –version’と入力してGitがインストールされたか確認します。

次のようにバージョンを返すでしょう。

$ git --version
git version 2.13.2

Gitの設定

名前とメールアドレスを設定する

変更をコミットするとき表示される名前をuser.nameに,問合せるときに使う自分のメールアドレスをuser.emailに設定します。

またそれらの設定値をグローバルなものにするために’–global’オプションを付けます。

$ git config --global user.name "Hoge Hogeo"
$ git config --global user.email "hoge@hoge.com"

‘–list’オプションで設定されたか確認できます。

$ git config --list
user.name=Hoge Hogeo
user.email=hoge@hoge.com

GitのGUIアプリケーションを使う

  • git-gui
# apt install git-gui

このコマンドで、次のgitkもインストールされます。

コミット、プッシュなどの操作はできますが、

リポジトリの履歴の閲覧はできないのでその場合はgitkを使いましょう。

  • gitk

Emacsでファイルを編集し、常時立ち上げたままでリポジトリの履歴の閲覧用に使っています。

.gitignoreの設定

Gitで管理したくないファイルを’~/.gitignore’に書きます。

GitHub – simonwhitaker/gibo: A shell script for easily accessing gitignore boilerplates

で配布されているgiboを使って’.gitignore’ファイルを作成します。

ダウンロード後、ディレクトリ内の’gibo-completion.bash’をホームディレクトリに’.gibo-completion.bash’としてコピーします。

ここは、使っているシェル応じてコピーするファイルを選択してください。

‘.bashrc’に’source ~/.gibo-completion.bash’を追加します。

次のコマンドで有効にします。

$ . ~/.bashrc

giboコマンドに’–list’オプションを付けて起動すると引数がリストアップされます。

$ ./gibo --list
=== Languages ===

Actionscript            Lua
Ada                     Magento
Agda                    Maven
Android                 Mercury
AppceleratorTitanium    MetaProgrammingSystem
AppEngine               Nanoc
ArchLinuxPackages       Nim
Autotools               Node
C++                     Objective-C
C                       OCaml
CakePHP                 Opa
CFWheels                OpenCart
ChefCookbook            OracleForms
Clojure                 Packer
CMake                   Perl
CodeIgniter             Phalcon
CommonLisp              PlayFramework
Composer                Plone
Concrete5               Prestashop
Coq                     Processing
CraftCMS                PureScript
CUDA                    Python
D                       Qooxdoo
Dart                    Qt
Delphi                  R
DM                      Rails
Drupal                  RhodesRhomobile
Eagle                   ROS
Elisp                   Ruby
Elixir                  Rust
Elm                     Sass
EPiServer               Scala
Erlang                  Scheme
ExpressionEngine        SCons
ExtJs                   Scrivener
Fancy                   Sdcc
Finale                  SeamGen
ForceDotCom             SketchUp
Fortran                 Smalltalk
FuelPHP                 Stella
Gcov                    SugarCRM
GitBook                 Swift
Go                      Symfony
Gradle                  SymphonyCMS
Grails                  Terraform
GWT                     TeX
Haskell                 Textpattern
Idris                   TurboGears2
IGORPro                 Typo3
Java                    Umbraco
Jboss                   Unity
Jekyll                  UnrealEngine
Joomla                  VisualStudio
Julia                   VVVV
KiCad                   Waf
Kohana                  WordPress
LabVIEW                 Xojo
Laravel                 Yeoman
Leiningen               Yii
LemonStand              ZendFramework
Lilypond                Zephir
Lithium

=== Global ===

Anjuta                  Matlab
Ansible                 Mercurial
Archives                MicrosoftOffice
Bazaar                  ModelSim
BricxCC                 Momentics
Calabash                MonoDevelop
Cloud9                  NetBeans
CodeKit                 Ninja
CVS                     NotepadPP
DartEditor              Otto
Dreamweaver             Redcar
Dropbox                 Redis
Eclipse                 SBT
EiffelStudio            SlickEdit
Emacs                   Stata
Ensime                  SublimeText
Espresso                SVN
FlexBuilder             SynopsysVCS
GPG                     Tags
JDeveloper              TextMate
JEnv                    TortoiseGit
JetBrains               Vagrant
Kate                    Vim
KDevelop4               VirtualEnv
Lazarus                 VisualStudioCode
LibreOffice             WebMethods
Linux                   Windows
LyX                     Xcode
macOS                   XilinxISE

使っているOS,言語、ソフトを引数にしてgiboコマンドを起動します。

$  ./gibo Linux Emacs LibreOffice LyX Ruby OCaml TeX > ~/.gitignore

二回目以降は以下のように追記すればよいでしょう。

$  ./gibo Vim Python >> ~/.gitignore

Magitのインストール

gitコマンドのEmacsインターフェースであるMagitをインストールします。

パッケージ名はelpa-magitです。

$ apt install elpa-magit

依存関係にあるパッケージもインストールされます。

.emacsの設定

Infoを参照しながら以下の設定をします。

(require 'magit)
(global-set-key (kbd "C-x g") 'magit-status)
(global-set-key (kbd "C-x M-g") 'magit-dispatch-popup)

Debian testing(Buster)でPython3環境を構築する

Python3のインストール

もともと入っているPyhonのバージョンが2系なので3系をインストールします。

コマンドライン

# apt-get install python3

高速配列モジュールNumPyのインストール

python3-numpyの解説

Fast array facility to the Python 3 language Numpy contains a powerful N-dimensional array object, sophisticated (broadcasting) functions, tools for integrating C/C++ and Fortran code, and useful linear algebra, Fourier transform, and random number capabilities. . Numpy replaces the python-numeric and python-numarray modules which are now deprecated and shouldn’t be used except to support older software. . This package contains Numpy for Python 3.

コマンドライン

ドキュメントも一緒にインストールします。

# apt-get install python3-numpy python-numpy-doc

科学的ツールSciPyのインストール

python3-scipyの解説

scientific tools for Python 3 SciPy supplements the popular NumPy module (python-numpy package), gathering a variety of high level science and engineering modules together as a single package. . SciPy is a set of Open Source scientific and numeric tools for Python. It currently supports special functions, integration, ordinary differential equation (ODE) solvers, gradient optimization, genetic algorithms, parallel programming tools, an expression-to-C++ compiler for fast execution, and others. . This package provides the Python 3 version.

コマンドライン

ドキュメントも一緒にインストールします。

# apt-get install python3-scipy python-scipy-doc

データ解析ライブラリPandasのインストール

python3-pandasの解説

data structures for “relational” or “labeled” data – Python 3 pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python. pandas is well suited for many different kinds of data: .

  • Tabular data with heterogeneously-typed columns, as in an SQL table or Excel spreadsheet
  • Ordered and unordered (not necessarily fixed-frequency) time series data.
  • Arbitrary matrix data (homogeneously typed or heterogeneous) with row and column labels
  • Any other form of observational / statistical data sets. The data actually need not be labeled at all to be placed into a pandas data structure

. This package contains the Python 3 version.

コマンドライン

ドキュメントも一緒にインストールします。同時に依存関係にあるパッケージもインストールされます。

# apt-get install python3-pandas python-pandas-doc

ウェブアプリケーションJupyter Notebookのインストール

python3-notebookの解説

Jupyter interactive notebook (Python 3) The Jupyter Notebook is a web application that allows you to create and share documents that contain live code, equations, visualizations, and explanatory text. The Notebook has support for multiple programming languages, sharing, and interactive widgets. . This package contains the Python 3 library.

コマンドライン

ドキュメントも一緒にインストールします。同時に依存関係にあるパッケージもインストールされます。

# apt-get install python3-notebook python-notebook-doc
$ jupyter notebook

jupyterコマンドでは起動しなかったので、従来通り

$ ipython3 notebook

ipythonコマンドで起動します(3系のためコマンドはipython3となっています)。

ドキュメントジェネレーターSphinxのインストール

python3-sphinxの解説

documentation generator for Python projects (implemented in Pyth on 3) Sphinx is a tool for producing documentation for Python projects, using reStructuredText as markup language. . Sphinx features:

  • HTML, CHM, LaTeX output,
  • Cross-referencing source code,
  • Automatic indices,
  • Code highlighting, using Pygments,
  • Extensibility. Existing extensions:
    • automatic testing of code snippets,
    • including docstrings from Python modules.

. This package includes Python 3 modules.

コマンドライン

ドキュメントも一緒にインストールします。同時に依存関係にあるパッケージもインストールされます。

# apt-get install python3-sphinx sphinx-doc