1
0
hugo/old/2018-10-16-pkgbuild.md
2024-12-21 22:23:54 +09:00

67 lines
2.1 KiB
Markdown

+++
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は、ファイルをダウンロードする前に確認するんですけど、ファイルの整合性(安全性)?をチェックするために、ただ、今回は、面倒だったので、ダウンロードしたファイルのものを入れてます。つまり、実質的にチェックしてない。気になる方はちゃんとしたほうがいいですね。