saundersp-overlay/app-misc/ollama-bin/ollama-bin-0.5.11.ebuild
2025-02-14 22:54:16 +01:00

70 lines
2.1 KiB
Bash

EAPI=8
DESCRIPTION='Get up and running with large language models.'
HOMEPAGE='https://ollama.com https://github.com/ollama/ollama'
SRC_MAIN_URI='https://github.com/ollama/ollama/releases/download/v'
SRC_URI="
amd64? ( ${SRC_MAIN_URI}${PV}/ollama-linux-amd64.tgz -> $P.amd64.tgz )
arm64? ( ${SRC_MAIN_URI}${PV}/ollama-linux-arm64.tgz -> $P.arm64.tgz )
rocm? ( ${SRC_MAIN_URI}${PV}/ollama-linux-amd64-rocm.tgz -> $P.rocm.tgz )
"
S="${WORKDIR}"
LICENSE='MIT'
SLOT='0'
KEYWORDS='~amd64 ~arm64'
IUSE='+systemd rocm'
DEPEND='acct-user/ollama acct-group/ollama'
RDEPEND='acct-user/ollama acct-group/ollama'
RESTRICT='strip'
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 -r /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
}