UbuntuはおもにデスクトップLinuxの初心者ユーザーをターゲットにした使いやすさを重視して開発、
今回はそんな
Aptをプロキシ内部で使うときに注意すべきこと
Ubuntuはシステム設定の
![図1 システム設定のネットワークプロキシの設定画面 図1 システム設定のネットワークプロキシの設定画面](/assets/images/admin/serial/01/ubuntu-recipe/0331/thumb/TH800_001.jpg)
サーバー環境での設定
システム設定はデスクトップ環境のみ存在し、
http_proxy="http://proxy.example.com:8080/"
https_proxy="https://proxy.example.com:8080/"
ftp_proxy="ftp://proxy.example.com:8080/"
socks_proxy="socks://proxy.example.com:1080/"
Acquire::http::proxy "http://proxy.example.com:8080/";
Acquire::https::proxy "https://proxy.example.com:8080/";
Acquire::ftp::proxy "ftp://proxy.example.com:8080/";
Acquire::socks::proxy "socks://proxy.example.com:1080/";
ちなみに、
sudoコマンド実行時のプロキシ設定
sudoコマンドを使って何かコマンドを実行した場合、
一番手っ取り早いのは、
$ sudo -E env (http_proxyなどが引き継がれていることがわかる)
http_
$ sudo visudo -f /etc/sudoers.d/proxy (以下を追加する) Defaults env_keep="http_proxy" Defaults env_keep+="https_proxy" Defaults env_keep+="ftp_proxy" Defaults env_keep+="socks_proxy"
wgetなら/etc/
プロキシのユーザー名とパスワード
これまで説明したいずれのケースにおいても、
http_proxy="http://user:[email protected]:8080/"
ただし/etc/
apt-get update時に「ハッシュサムが適合しません」と出る
プロキシ環境の内部から
プロキシ内部からアップデートする場合は、
Acquire::http::No-Cache "true";
Acquire::https::No-Cache "true";
No-Cache以外にも、
パッケージを再インストールしたい
パッケージ管理されているファイルの一部を誤って消してしまった場合、
$ sudo apt install --reinstall パッケージ名
設定ファイルも含めて元に戻したい場合は、
$ sudo apt remove --purge パッケージ名 $ sudo apt install パッケージ名
この場合、
ここでいう
$ dpkg-query --control-show パッケージ名 conffiles
ここにリストアップされていない設定ファイル、
古いバージョンを使いつづけたい
パッケージシステムでアップグレードすると、
そんなときは、
$ apt-cache policy firefox firefox: インストールされているバージョン: 30.0+build1-0ubuntu0.14.04.3 候補: 30.0+build1-0ubuntu0.14.04.3 バージョンテーブル: *** 30.0+build1-0ubuntu0.14.04.3 0 500 http://jp.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages 100 /var/lib/dpkg/status 28.0+build2-0ubuntu2 0 500 http://jp.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
ここで候補となるパッケージは、
もし28.
$ sudo editor /etc/apt/preferences.d/firefox Package: firefox* Pin: version 28.0* Pin-Priority: 1001 $ sudo apt update $ sudo apt upgrade
Pin-Priorityが1000以上の場合、
単純にバージョンを指定してインストールしたいだけであれば、
$ sudo apt install firefox=28.0+build2-0ubuntu2
より実用的な要望として特定のPPAのパッケージは、
$ sudo add-apt-repository ppa:foo/bar $ sudo editor /etc/apt/preferences.d/ppa-foo-bar Package: * Pin: release o=LP-PPA-foo-bar Pin-Priority: 600
これにより公式リポジトリのパッケージのアップデートにより、
どうしても古いリリースを使いたい
UbuntuはLTSで5年、
しかしなんらかの理由により、
/etc/
当然のことながら、
パッケージを整理したい
バイナリパッケージのキャッシュを削除する
Aptを使ってパッケージをインストール/
apt-getのcleanコマンドやautocleanコマンドを使うとこのリポジトリを整理できます。
$ sudo apt-get autoclean
autocleanコマンドは、
autocleanは設定によって定期的に実行することが可能です。
$ sudo editor /etc/apt/apt.conf.d/10periodic (中略) Apt::Periodic::AutocleanInterval "0";
AutocleanIntervalの値を0から、
使われなくなったパッケージを削除する
autocleanと似たような名前のコマンドにautoremoveも存在します。こちらは、
推奨パッケージをインストールしない
そもそも自動的にインストールするパッケージを抑制するという方法も存在します。Ubuntuは8.
aptコマンドに--no-install-recommendsオプションを渡すことで、
$ sudo apt install texlive-lang-cjk (中略) アップグレード: 0 個、新規インストール: 143 個、削除: 0 個、保留: 16 個。 866 MB のアーカイブを取得する必要があります。 この操作後に追加で 1,683 MB のディスク容量が消費されます。 $ sudo apt install --no-install-recommends texlive-lang-cjk (中略) アップグレード: 0 個、新規インストール: 50 個、削除: 0 個、保留: 16 個。 139 MB のアーカイブを取得する必要があります。 この操作後に追加で 575 MB のディスク容量が消費されます。
サーバー環境などで恒常的に--no-install-recommendsオプションを付けたい場合は、
パッケージセットをインストールしたい
Ubuntu Serverをインストールしたことがある人なら、
![図2 サーバーの用途ごとにソフトウェアコレクションを選択できる 図2 サーバーの用途ごとにソフトウェアコレクションを選択できる](/assets/images/admin/serial/01/ubuntu-recipe/0331/thumb/TH800_002.jpg)
これはtaskselというソフトウェアが提供している機能で、
$ sudo apt install tasksel $ sudo tasksel (グラフィカルなタスク選択画面が出てくる) ●タスクの一覧表示 $ tasksel --list-tasks i server Basic Ubuntu server i openssh-server OpenSSH server u dns-server DNS server u lamp-server LAMP server (後略) ●タスクの概要表示 $ tasksel --task-desc lamp-server Selects a ready-made Linux/Apache/MySQL/PHP server. ●タスクでインストールされるパッケージの一覧 $ tasksel --task-packages lamp-server php5-common libwrap0 apache2-bin apache2 (後略) ●タスクのインストール $ sudo tasksel install lamp-server
タスクの内容は、
Seedに列挙されているパッケージは、
$ apt show byobu (中略) Task: ubuntu-usb, cloud-image, server, edubuntu-usb
このTaskフィールドを使えば、
$ sudo apt install server^ standard^
CUIの標準エディタを変更したい
Ubuntuをインストールした直後の環境だとeditorコマンドなどで起動するCUI向けのテキストエディタは
ただエディタは人によって好みがわかれるだけに、
●候補の表示 $ update-alternatives --list editor /bin/ed /bin/nano /usr/bin/vim.basic /usr/bin/vim.tiny ●対話的に選択 $ sudo update-alternatives --config editor alternative editor (/usr/bin/editor を提供) には 4 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ 0 /bin/nano 40 自動モード 1 /bin/ed -100 手動モード 2 /bin/nano 40 手動モード * 3 /usr/bin/vim.basic 30 手動モード 4 /usr/bin/vim.tiny 10 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 3 ●非対話的に選択 $ sudo update-alternatives --set editor /usr/bin/vim.basic
sensible-editorというコマンドをもあります。これはEDITORやVISUALといった環境変数を元に起動するエディタを切り替えます。select-editorコマンドを使えば、
64bit版の上で32bit版パッケージを使う
そろそろ64bit版のUbuntuを使っている人もだいぶ増えてきたかと思いますが、
ただし、
過去にはia32-libsパッケージを使って一括して大量の32bitパッケージをインストールする手順が紹介されていましたが、
$ sudo dpkg --add-architecture i386 $ sudo apt update $ sudo apt install package1:i386 package2:i386
このときpackage1がi386版のパッケージに依存している場合は、
他にも
これまでにも第173回では自動アップデートの機能や、
「こんなことがやりたいんだけど?」