Ubuntu 14.04 で LibreOffice をダウングレードする

## TL; DR

削除されない依存パッケージがあるとダウングレードできないよ。
過去に登録した PPA リポジトリは `ppa-purge` 使うと削除できたよ。

## 環境

- Ubuntu 14.04.2 LTS
- AWS EC2

## 背景

LibreOffice 4.4.x 系が入っていた環境で 5.1.x 系にアップグレードした。
極力最新のものを使いたかったため LaunchPad の [LibreOffice 公式の PPA](https://launchpad.net/~libreoffice) の [Fresh](https://launchpad.net/~libreoffice/+archive/ubuntu/ppa) パッケージを利用している。

```
$ sudo apt-get install libreoffice
```

ただ、5.1.x 系では PDF 出力したときにレイアウトが崩れることが判明し、ダウングレードする必要性が出てきた。

## 最初の試み

そもそも Fresh パッケージを使うと現在の stable しか入らないため、今回のように古い stable を使い続けたいという目的には合わない。なので一旦 5.1.x 系の LibreOffice を削除して、利用する PPA を [Fresh](https://launchpad.net/~libreoffice/+archive/ubuntu/ppa) から [4.4.x](https://launchpad.net/~libreoffice/+archive/ubuntu/libreoffice-4-4) に変更する。

```
$ sudo apt-get remove libreoffice
$ sudo add-apt-repository --remove ppa:libreoffice/ppa
$ sudo add-apt-repository ppa:libreoffice/libreoffice-4-4
$ sudo apt-get update
```

実行してみると、２番めと３番めのコマンドで確認メッセージが表示されて `ppa-purge` を使え、とか書いてあったけど、とりあえず Enter で継続してみた。

## 完全に消えていない・・・

最初のコマンドで LibreOffice の削除を試みましたが、依存パッケージは削除されていませんし、以前のバージョンのパッケージも一部残っていました。

```
$ sudo dpkg -l | grep libreoffice
ii  libreoffice-avmedia-backend-gstreamer 1:4.4.3~rc2-0ubuntu1~trusty1           amd64        GStreamer backend for LibreOffice
ii  libreoffice-base                      1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- database
ii  libreoffice-base-core                 1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- shared library
ii  libreoffice-base-drivers              1:5.1.3~rc2-0ubuntu1~trusty1           amd64        Database connectivity drivers for LibreOffice
ii  libreoffice-calc                      1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- spreadsheet
ii  libreoffice-common                    1:5.1.3~rc2-0ubuntu1~trusty1           all          office productivity suite -- arch-independent files
ii  libreoffice-core                      1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- arch-dependent files
ii  libreoffice-draw                      1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- drawing
ii  libreoffice-impress                   1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- presentation
ii  libreoffice-java-common               1:5.1.3~rc2-0ubuntu1~trusty1           all          office productivity suite -- arch-independent Java support files
ii  libreoffice-math                      1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- equation editor
ii  libreoffice-report-builder-bin        1:4.4.3~rc2-0ubuntu1~trusty1           amd64        LibreOffice component for building database reports -- libraries
ii  libreoffice-style-galaxy              1:5.1.3~rc2-0ubuntu1~trusty1           all          office productivity suite -- Galaxy (Default) symbol style
ii  libreoffice-writer                    1:5.1.3~rc2-0ubuntu1~trusty1           amd64        office productivity suite -- word processor
```

さらに PPA リポジトリの削除もうまくいっていないようです。１つ目の「1:5.2.3~rc2」というのが Fresh パッケージのリポジトリになります。

```
$ sudo apt-cache policy libreoffice
libreoffice:
  Installed: (none)
  Candidate: 1:5.1.3~rc2-0ubuntu1~trusty1
  Version table:
     1:5.1.3~rc2-0ubuntu1~trusty1 0
        500 http://ppa.launchpad.net/libreoffice/ppa/ubuntu/ trusty/main amd64 Packages
     1:4.2.8-0ubuntu4 0
        500 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ trusty-security/universe amd64 Packages
     1:4.2.3~rc3-0ubuntu2 0
        500 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
```

## 依存パッケージを削除する

依存パッケージを削除せずに 4.4.x 系をインストールしようとするとエラーが発生するので、あらかじめ削除しておきます。

```
$ sudo dpkg -l | grep libreoffice | awk '{print $2}' | xargs -I{} sudo apt-get -y purge {}
$ sudo apt-get autoremove
```

確認します。

```
$ sudo dpkg -l | grep libreoffice
```

結果はからっぽなので消えています。

## PPA リポジトリを削除する

How can PPAs be removed?
[http://askubuntu.com/questions/307/how-can-ppas-be-removed](http://askubuntu.com/questions/307/how-can-ppas-be-removed)

どうやら `ppa-purge` というツールを使って削除する方法もあるようなので試してみます。

```
$ sudo apt-get install ppa-purge
$ sudo ppa-purge ppa:libreoffice/ppa
```

メッセージを見る限りうまくいったようなので確認してみます。

```
$ sudo apt-cache policy libreoffice
libreoffice:
  Installed: (none)
  Candidate: 1:4.4.7~rc2-0ubuntu1~trusty1
  Version table:
     1:4.4.7~rc2-0ubuntu1~trusty1 0
        500 http://ppa.launchpad.net/libreoffice/libreoffice-4-4/ubuntu/ trusty/main amd64 Packages
     1:4.2.8-0ubuntu4 0
        500 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ trusty-security/universe amd64 Packages
     1:4.2.3~rc3-0ubuntu2 0
        500 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
```

5.1.x 系が消えて 4.4.x 系が表示されているので大丈夫そうです。

## 4.4.x をインストールする

すでに Fresh パッケージは消えてますし、LibreOffice の 4.4.x 系パッケージは Ubuntu デフォルトよりも優先度が高いため、特にバージョン指定は不要です。

```
$ sudo apt-get install libreoffice
```

## 完了

以上でダウングレード完了です。