2.1 KiB
2.1 KiB
+++ date = "2018-10-16" tags = ["arch"] title = "archでpackageをdowngradeする" slug = "manga" +++
archでpackageをdowngradeするには、いろいろな方法があります。
一つはdowngrader
をinstallして実行する方法です。
$ yay -S downgrader
$ downgrader wine-mono
しかし、パッケージによっては、古いバージョンが見つからないことがあります。
そのような場合は、git.archlinux.orgからPKGBUILDを持ってきて対応したりします。
# 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ですね。内容を見て判断してください。
# 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でインスールします。
$ cat PKGBUILD
pkgver=4.7.2
sha512sums=('1234')
$ makepkg
$ sudo pacman -U wine-mono-4.7.2-1-any.pkg.tar.xz
archはこういうことがサクッとできるのでいいですね。
注意
本来、checksumは、ファイルをダウンロードする前に確認するんですけど、ファイルの整合性(安全性)?をチェックするために、ただ、今回は、面倒だったので、ダウンロードしたファイルのものを入れてます。つまり、実質的にチェックしてない。気になる方はちゃんとしたほうがいいですね。