+++ date = "2018-10-16" tags = ["arch"] title = "archでpackageをdowngradeする" slug = "manga" +++ archでpackageをdowngradeするには、いろいろな方法があります。 一つは`downgrader`をinstallして実行する方法です。 ```sh $ yay -S downgrader $ downgrader wine-mono ``` しかし、パッケージによっては、古いバージョンが見つからないことがあります。 そのような場合は、git.archlinux.orgからPKGBUILDを持ってきて対応したりします。 ```sh # https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/wine-mono $ vim PKGBUILD pkgname=wine-mono pkgver=4.7.x pkgrel=1 pkgdesc="Wine's built-in replacement for Microsoft's .NET Framework" arch=('any') url="https://wiki.winehq.org/Mono" license=('GPL' 'LGPL2.1' 'MPL') depends=('wine') source=("https://dl.winehq.org/wine/$pkgname/$pkgver/$pkgname-$pkgver.msi") sha512sums=('xxxxx') package() { install -Dm644 $pkgname-$pkgver.msi "$pkgdir"/usr/share/wine/mono/$pkgname-$pkgver.msi } ``` こんな感じのPKGBUILDを用意して、内容を書き換えます。この場合は、pkgverとsha512sumですね。内容を見て判断してください。 ```sh # http://dl.winehq.org/wine/wine-mono/ $ curl -sLO http://dl.winehq.org/wine/wine-mono/4.7.2/wine-mono-4.7.2.msi $ sha512sums wine-mono-4.7.2.msi 1234 wine-mono-4.7.2.msi ``` あとは、`makgepkg`を実行して`pkg.tar.xz`を作り、それをpacmanでインスールします。 ```sh $ cat PKGBUILD pkgver=4.7.2 sha512sums=('1234') $ makepkg $ sudo pacman -U wine-mono-4.7.2-1-any.pkg.tar.xz ``` archはこういうことがサクッとできるのでいいですね。 ## 注意 本来、checksumは、ファイルをダウンロードする前に確認するんですけど、ファイルの整合性(安全性)?をチェックするために、ただ、今回は、面倒だったので、ダウンロードしたファイルのものを入れてます。つまり、実質的にチェックしてない。気になる方はちゃんとしたほうがいいですね。