View Raw Ebuild
# Generated via: https://github.com/arran4/arrans_overlay/blob/main/.github/workflows/app-misc-ollama-bin-update.yaml
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"
BDEPEND="app-arch/zstd"
DEPEND="acct-user/ollama acct-group/ollama"
RDEPEND="acct-user/ollama acct-group/ollama"
S="${WORKDIR}"
RESTRICT="strip"
inherit xdg-utils
MY_PV="${PV/_/-}"
SRC_URI="
amd64? ( https://github.com/ollama/ollama/releases/download/v${MY_PV}/ollama-linux-amd64.tar.zst -> $P.amd64.tar.zst )
arm64? ( https://github.com/ollama/ollama/releases/download/v${MY_PV}/ollama-linux-arm64.tar.zst -> $P.arm64.tar.zst )
rocm? ( https://github.com/ollama/ollama/releases/download/v${MY_PV}/ollama-linux-amd64-rocm.tar.zst -> $P.rocm.tar.zst )
"
src_unpack() {
if use rocm; then
tar --zstd -xf "${DISTDIR}/${P}.rocm.tar.zst" -C "${WORKDIR}" || die "Failed to unpack rocm"
fi
if use amd64; then
tar --zstd -xf "${DISTDIR}/${P}.amd64.tar.zst" -C "${WORKDIR}" || die "Failed to unpack amd64"
elif use arm64; then
tar --zstd -xf "${DISTDIR}/${P}.arm64.tar.zst" -C "${WORKDIR}" || die "Failed to unpack arm64"
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
}