saundersp-overlay/app-misc/ollama-bin/ollama-bin-0.5.7.ebuild
2025-02-01 16:04:42 +01:00

72 lines
2.2 KiB
Bash

EAPI=8
DESCRIPTION='Get up and running with Llama 3, Mistral, Gemma, and other large language models.'
HOMEPAGE='https://ollama.com'
LICENSE='MIT'
SLOT='0'
KEYWORDS='~amd64 ~arm64'
IUSE='+systemd -rocm'
DEPEND='acct-user/ollama acct-group/ollama'
RDEPEND='acct-user/ollama acct-group/ollama'
S="${WORKDIR}"
RESTRICT='strip'
inherit xdg-utils
SRC_URI="
amd64? ( https://github.com/ollama/ollama/releases/download/v${PV}/ollama-linux-amd64.tgz -> $P.amd64.tgz )
arm64? ( https://github.com/ollama/ollama/releases/download/v${PV}/ollama-linux-arm64.tgz -> $P.arm64.tgz )
rocm? ( https://github.com/ollama/ollama/releases/download/v${PV}/ollama-linux-amd64-rocm.tgz -> $P.rocm.tgz )
"
src_unpack() {
if use rocm; then
tar -xzvf "${DISTDIR}/${P}.rocm.tgz" -C "${WORKDIR}" || die "Can't extract rocm tgz"
elif use amd64; then
tar -xzvf "${DISTDIR}/${P}.amd64.tgz" -C "${WORKDIR}" || die 'Failed to extract binary'
elif use arm64; then
tar -xzvf "${DISTDIR}/${P}.arm64.tgz" -C "${WORKDIR}" || die 'Failed to extract binary'
fi
}
src_install() {
exeinto /opt/Ollama/bin
doexe "${WORKDIR}/bin/ollama" || die 'Failed to install binary'
insinto /opt/Ollama/lib/
doins -r "${WORKDIR}/lib/ollama/" || die 'Failed to install libraries'
dosym /opt/Ollama/bin/ollama /opt/bin/ollama
}
src_prepare() {
eapply_user
}
pkg_postinst() {
einfo 'Quick guide:'
einfo 'ollama serve'
einfo 'ollama run llama3:70b'
einfo 'See available models at https://ollama.com/library'
if use systemd; then
einfo 'Creating systemd service file...'
{
echo '[Unit]'
echo 'Description=Ollama Service'
echo 'After=network-online.target'
echo ''
echo '[Service]'
echo 'ExecStart=/opt/Ollama/bin/ollama serve'
echo 'User=ollama'
echo 'Group=ollama'
echo 'Restart=always'
echo 'RestartSec=3'
echo ''
echo '[Install]'
echo 'WantedBy=default.target'
} > /usr/lib/systemd/system/ollama.service
einfo 'Service file created at /etc/systemd/system/ollama.service'
einfo 'Making service user-startable...'
mkdir -p /etc/systemd/user
ln -s /usr/lib/systemd/system/ollama.service /etc/systemd/user/ollama.service
ln -s /usr/lib/systemd/system/ollama.service /etc/systemd/system/ollama.service
fi
}