Unix command > aptによるパッケージ管理

更新日 2020-02-10
広告

aptは、DebianやUbuntuなどで採用されているパッケージ管理システムです。いろんなコマンドやアプリケーションを、簡単にインストールしたり、更新したり、アンインストールしたりできます。

パッケージ情報の更新

インストールできるパッケージは、日々、更新されています。パッケージ情報を最新にするには、以下のコマンドを実行します。
$ sudo apt-get update

パッケージの検索

パッケージを検索するには、apt-cacheコマンドを使います。
$ apt-cache search 検索キーワード
パッケージの名前のみを検索対象としたい場合は、--names-only オプションを追加します。
$ apt-cache search --names-only postgres
postgresql-client-common - manager for multiple PostgreSQL client versions
postgresql-common - PostgreSQL database-cluster manager
aolserver4-nspostgres - AOLserver 4 module: Postgres connector
cl-sql-postgresql - CLSQL database backend, PostgreSQL via library
   :
一番左に表示されているのが、パッケージの名前です。

パッケージのインストール

インストールしたいパッケージが見つかったら、以下のコマンドでインストールできます。
$ sudo apt-get install パッケージ名

インストール済みパッケージのアップグレード

インストール済みのパッケージをアップグレードするには、以下のコマンドを実行します。
$ sudo apt-get upgrade

パッケージのアンインストール

パッケージをアンインストールするには、以下のコマンドを実行します。
$ sudo apt-get remove パッケージ名

プロキシ

aptはHTTPを使ってパッケージをダウンロードします。 以下のように、sudoでapt系のコマンドを実行したときに、プロキシの設定が無効になる場合があります。
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
このときは、以下のように、管理者権限に移動してから、、、
$ sudo su
exportコマンドでプロキシを設定します。
# export http_proxy=http://test.proxy.hoge:8080
# export https_proxy=http://test.proxy.hoge:8080
それからコマンドを実行すれば、プロキシを使用してくれます。
# add-apt-repository ppa:ubuntu-toolchain-r/test

No priorityエラー

Ubuntu 14から16にアップグレードした直後にapt-getをしようとしたところ、以下のエラーが出ました。
$ sudo apt-get upgrade
Reading package lists... Done
E: No priority (or zero) specified for pin
このエラーは、今頃(2019年頃)になってようやくUbuntu 14から16にアップグレードした場合に発生する現象のようです。
$ cat /etc/apt/preferences.d/ubuntu-esm-infra-trusty
# Written by ubuntu-advantage-tools
Package: *
Pin: release o=UbuntuESM, n=trusty
Pin-Priority: never
上記の、 ubuntu-esm-infra-trusty というファイルが作成されていたら、それを削除しましょう。 上記ファイルにより、UbuntuESMというpackageにupdateが限定されてしまっています。 これで、apt-getできるようになります。
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system