Linux コマンド:コンパイル・インストール・デバッグ
目次
インストール
ソースファイルからインストール
# make install
パッケージ管理ツールからインストール
パッケージ管理ツール種類
Redhat系 | Debian系 | 機能 |
---|---|---|
rpm | dpkg | 依存パッケージをユーザに通知 |
yum | apt | 依存パッケージを自動インストール |
PRM(RedHat)系
RedHad社が開発したパッケージシステムを用いる
・Fedora
・CentOS
DEB(Debian)系
・ubuntu
・Debian GNU/Linux
パッケージのインストール
yum install (パッケージ名)
リポジトリを指定してインストール
yum install --
enablerepo=remi (パッケージ名)
yum install --
enablerepo=epel (パッケージ名)
パッケージを削除する
yum remove (パッケージ名)
アップデートがあるかチェック
yum check-update
パッケージ全体をアップデートする
yum update
特定のパッケージをアップデートする
yum update (パッケージ名)
質問に対して全て自動的に「YES」で回答する
yum -y ~
rpm -ivh (パス).rpm
パッケージを削除する
rpm -evh (パッケージ名)
特定のパッケージをアップデートする
rpm -Uvh パッケージファイル名
apt-get install (パッケージ名)
パッケージを削除する
apt-get remove (パッケージ名)
dpkg -r (パッケージ名)
アップデートがあるかチェック
apt-get -s upgrade
apt-get -s dist-upgrade
パッケージ全体をアップデートする
apt-get upgrade
apt-get dist-upgrade
特定のパッケージをアップデートする
apt-get upgrade (パッケージ名)
apt-get dist-upgrade (パッケージ名)
パッケージの情報
yum list installed
パッケージの情報
yum search string
リポジトリのすべてのパッケージを表示
yum list
利用可能なパッケージを表示
yum list available
パッケージについての情報を表示
yum info (パッケージ名)
特定のファイルを含むパッケージの表示
yum provides filename
rpm -qa
パッケージについての情報を表示
rpm -qip (パッケージ名).rpm
特定のファイルを含むパッケージの表示
rpm -qf path/filename
インストール済みのパッケージの情報を表示
rpm -qi (パッケージ名)
パッケージに含まれているファイルの表示
rpm -ql (パッケージ名)
rpm -qlp (パッケージ名).rpm
特定のパッケージが依存するパッケージのリスト
rpm -qR (パッケージ名)
特定のパッケージに依存するパッケージのリスト
rpm -q –whatrequires (パッケージ名)
apt list
--
installed
パッケージの情報
apt-cache search string
リポジトリのすべてのパッケージを表示
apt-cache search .
利用可能なパッケージを表示
apt-cache dumpavail
パッケージについての情報を表示
apt-cache show (パッケージ名)
特定のパッケージが依存するパッケージのリスト
apt-cache depends (パッケージ名)
特定のパッケージに依存するパッケージのリスト
apt-cache rdepends (パッケージ名)
パッケージ種類
i386:32ビット用
x86_64:64ビット用
リポジトリ
一覧
yum repolist all
追加
epelを追加
$ rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
remiを追加
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
【ローカルにダウンロード後】
epelを追加
$ wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm
remiを追加
$ wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
$ rpm -ivh remi-release-6.rpm
リポジトリファイル
にリポジトリファイルが作成される
※例:epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
有効設定
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
ダウンロード
wget
ファイルのダウンロード
$ wget http://google.com
curl
GET
POST
ファイルのダウンロード
gem
rubyのパッケージ管理システム
Linuxからはデフォルトで利用可能
vagrantのインストール。この場合バージョンが勝手に決められる
$ gem install vagrant
コンパイル
GCC
GNU Compiler Collection
C/C++、Java等のコンパイラ群
コマンドラインから実行する
makeツール
Makeファイルに従ってコンパイル(GCC利用)、リンク、インストール等を行うツール
≒Ant
Makeファイル
makeコマンド時に参照されるビルド設定ファイル
手順
Makeファイル生成
# ./configure
↓
実行ファイル生成
# make
デバッグ
GDB
GNU DeBuggr
GCCでコンパイルされたプログラムのデバッグツール
Linux上で動作させる
GDB命令一覧
命令 | 機能 | 例 |
---|---|---|
gcc -g -o0 (ソースファイル) | デバッグ用コンパイル | gcc -g -o0 test.c |
gdb (実行ファイル) | gdb起動 | gdb test.o |
break main | main関数一でブレーク | break main |
break (ソースファイル):N | 指定行でブレーク | break test.o:100 |
run | デバッグ実行開始 | run |
quit | gdb終了 | quit |
next | ステップアウト | next |
step | ステップイン | step |
list | ブレーク位置のソース表示 | list |
ブレーク位置の変数表示 | ||
whatisptype | ブレーク位置の変数型表示 | whatisptype |