在arch linux的aur中,idea专业版默认是最新版。但当我们想安装旧版本idea时(如24.1.7版本),就需要自己修改aur中的的PKGBUILD,自行打包。或从官方网站中下载官方的tar.gz压缩包,解压后使用。(arch linux中不推荐这种软件包安装方式)。以下是我基于aur中的PKGBUILD,自行修改用于打包idea 24.1.7的PKGBUILD。tips:仅适用于x86_64架构,如需arm架构,请自行修改。
pkgbase=intellij-idea-ultimate-edition
pkgname=(intellij-idea-ultimate-edition intellij-idea-ultimate-edition-jre)
pkgver=2024.1.7
pkgrel=1
_buildver=241.19416.15
jbr_ver=21.0.2
jbr_build=aarch64-b346
jbr_minor=3
arch=('x86_64' 'aarch64')
pkgdesc="An intelligent IDE for Java, Groovy and other programming languages with advanced refactoring features intensely focused on developer productivity."
url="https://www.jetbrains.com/idea/"
license=('custom:commercial')
options=(!strip)
source=("https://download-cdn.jetbrains.com/idea/ideaIU-$pkgver.tar.gz"
"jetbrains-idea.desktop")
source_aarch64=("https://cache-redirector.jetbrains.com/intellij-jbr/jbr-$jbr_ver-linux-$jbr_build.$jbr_minor.tar.gz"
"https://github.com/JetBrains/intellij-community/raw/master/bin/linux/aarch64/fsnotifier")
sha256sums=('98b661d145d41d123ee29316e35c38b39c3e0f3a34bea5b5f6c378b587dd4172'
'83af2ba8f9f14275a6684e79d6d4bd9b48cd852c047dacfc81324588fa2ff92b')
sha256sums_aarch64=('1bb237ede4123b425bb3270b2ac7a5a94375ebb4cf6f53dde8084d5637c87c4e'
'eb3c61973d34f051dcd3a9ae628a6ee37cd2b24a1394673bb28421a6f39dae29')
prepare() {
# Extract the JRE from the main pacakge
if [ -d "$srcdir"/jbr ]; then
rm -rf "$srcdir"/jbr
fi
# https://youtrack.jetbrains.com/articles/IDEA-A-48/JetBrains-IDEs-on-AArch64#linux
if [ "${CARCH}" == "aarch64" ]; then
cp -a "$srcdir"/jbr-${jbr_ver}-linux-${jbr_build}.${jbr_minor} "$srcdir"/jbr
cp -f fsnotifier "$srcdir"/idea-IU-$_buildver/bin/fsnotifier
chmod +x "$srcdir"/idea-IU-$_buildver/bin/fsnotifier
rm -rf "$srcdir"/idea-IU-$_buildver/jbr
else
mv "$srcdir"/idea-IU-$_buildver/jbr "$srcdir"/jbr
fi
}
package_intellij-idea-ultimate-edition() {
backup=("opt/${pkgname}/bin/idea64.vmoptions" "opt/${pkgname}/bin/idea.properties")
depends=('giflib' 'libxtst' 'libxrender')
optdepends=(
'intellij-idea-ultimate-edition-jre: JetBrains custom JRE (Recommended)' 'java-environment: Required if intellij-idea-ultimate-edition-jre is not installed'
'libdbusmenu-glib: For global menu support'
)
cd "$srcdir"
install -d "$pkgdir"/{opt/$pkgname,usr/bin}
mv idea-IU-${_buildver}/* "$pkgdir"/opt/$pkgbase
# https://youtrack.jetbrains.com/issue/IDEA-185828
chmod +x "$pkgdir"/opt/$pkgbase/plugins/maven/lib/maven3/bin/mvn
ln -s /opt/$pkgname/bin/idea.sh "$pkgdir"/usr/bin/$pkgname
install -D -m644 "$srcdir"/jetbrains-idea.desktop "$pkgdir"/usr/share/applications/jetbrains-idea.desktop
install -D -m644 "$pkgdir"/opt/$pkgbase/bin/idea.svg "$pkgdir"/usr/share/pixmaps/"$pkgname".svg
# workaround FS#40934
sed -i 's|lcd|on|' "$pkgdir"/opt/$pkgname/bin/*.vmoptions
}
package_intellij-idea-ultimate-edition-jre() {
url="https://github.com/JetBrains/JetBrainsRuntime"
install -d -m 755 "$pkgdir"/opt/$pkgbase
mv "$srcdir"/jbr "$pkgdir"/opt/$pkgbase
}
打开终端,使用 yay -Syu intellij-idea-ultimate-edition 获取最新版的PKGBUILD,随后打开该文件并用以上内容替换,保存。在该PKGBUILD文件目录中执行makepkg打包,完成后使用
pacman -U intellij-idea-ultimate-edition-2024.1.7-1-x86_64.pkg.tar.zst intellij-idea-ultimate-edition-jre-2024.1.7-1-x86_64.pkg.tar.zst
安装即可。
如果觉得idea24.1.7自带的jre体积过大,可以不安装。idea会使用系统默认的jdk启动,可能会失去一些特性,如合并标题栏和标签页。如果觉得jre的版本太低,可以使用以下PKGBUILD打包新版的idea jre。
pkgbase=intellij-idea-ultimate-edition
pkgname=intellij-idea-ultimate-edition-jre
pkgrel=1
pkgver=21.0.7
_buildver=b1038.54
pkgdesc="The Latest JBR For Intellij Idea Ultimate Edition"
arch=('x86_64')
url="https://github.com/JetBrains/JetBrainsRuntime"
license=("GPL-2.0-only")
provides=("$pkgname")
conflicts=("$pkgname")
source=("https://cache-redirector.jetbrains.com/intellij-jbr/jbr_jcef-$pkgver-linux-x64-$_buildver.tar.gz")
sha512sums=('2693b7079a3526fc7e042cd5ddd708bf3ccdd7d55c7dac02c7e417ad175e84a261f015cf3a34f63e4586aac89f7e6fa447076c3c670a1442dc7d5f515f9554f3')
package() {
url="https://github.com/JetBrains/JetBrainsRuntime"
depends=("intellij-idea-ultimate-edition")
install -d -m 755 "$pkgdir"/opt/$pkgbase/jbr
mv "$srcdir"/jbr_jcef-$pkgver-linux-x64-$_buildver/* "$pkgdir"/opt/$pkgbase/jbr
}
文章评论