pub struct RocmInstaller { /* private fields */ }Expand description
The ROCm installer.
Implementations§
Source§impl RocmInstaller
impl RocmInstaller
Sourcepub fn new(config: RocmConfig) -> Self
pub fn new(config: RocmConfig) -> Self
Create a new ROCm installer with the given config.
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create with default config (Latest channel, Standard install).
Sourcepub fn channel(&self) -> RocmChannel
pub fn channel(&self) -> RocmChannel
Get the ROCm channel.
Sourcepub fn effective_version(&self) -> &'static str
pub fn effective_version(&self) -> &'static str
Effective ROCm version, honouring the Legacy 7.2.3 fallback.
Sourcepub fn therock_distro_dir(distro: &DistroFacade) -> Option<String>
pub fn therock_distro_dir(distro: &DistroFacade) -> Option<String>
Repo directory name for a distro on the TheRock multi-arch repo
(e.g. ubuntu2404, debian12, rhel9, sles16). None if unsupported.
Sourcepub fn therock_package(&self) -> String
pub fn therock_package(&self) -> String
Per-GPU metapackage name, e.g. amdrocm7.14-gfx1100.
Sourcepub fn therock_apt_version_glob(&self) -> String
pub fn therock_apt_version_glob(&self) -> String
apt Version of the metapackage: 7.14.1 -> 7.14.1-*.
The glob is intentional: it pins the ROCm release but tracks the
repo’s latest packaging revision (-0, -1, …) of that release.
Sourcepub fn therock_apt_commands(
&self,
distro: &DistroFacade,
) -> Result<Vec<PackageCommand>, String>
pub fn therock_apt_commands( &self, distro: &DistroFacade, ) -> Result<Vec<PackageCommand>, String>
Commands that configure the TheRock apt repo (key, source) and install.
Sourcepub fn therock_rpm_commands(
&self,
distro: &DistroFacade,
) -> Result<Vec<PackageCommand>, String>
pub fn therock_rpm_commands( &self, distro: &DistroFacade, ) -> Result<Vec<PackageCommand>, String>
Commands that configure the TheRock rpm repo and install (dnf / zypper).
Sourcepub fn pip_requirement(&self) -> String
pub fn pip_requirement(&self) -> String
pip requirement for the ROCm SDK on this channel
(rocm[libraries,device-all]==7.14.1).
Sourcepub fn pip_index_url(&self) -> Option<&'static str>
pub fn pip_index_url(&self) -> Option<&'static str>
pip index URL for this channel (None for classic Legacy).
Sourcepub fn therock_family(gfx: &str) -> Option<String>
pub fn therock_family(gfx: &str) -> Option<String>
TheRock GPU family for tarball names (gfx1100 -> gfx110X-all).
Sourcepub fn tarball_url(&self) -> Result<String, String>
pub fn tarball_url(&self) -> Result<String, String>
TheRock tarball URL for the configured GPU and channel.
Sourcepub fn runfile_url(&self) -> String
pub fn runfile_url(&self) -> String
Runfile installer URL (rocm-installer-7.14.0-7.run).
The trailing number is the runfile build id; it defaults to
RUNFILE_BUILD_DEFAULT and can be overridden with ROCM_RUNFILE_BUILD.
Sourcepub fn repo_base_url(&self, distro: &DistroFacade) -> String
pub fn repo_base_url(&self, distro: &DistroFacade) -> String
Get the amdgpu/ROCm repo base URL for the given distro and channel.
For apt-based distros, the URL is:
https://repo.radeon.com/amdgpu/{major_minor}/ubuntu/{codename}
For RHEL-based distros:
https://repo.radeon.com/amdgpu/{major_minor}/rhel/{rhel_version}
For SUSE:
https://repo.radeon.com/amdgpu/{major_minor}/sle/{sles_version}
Sourcepub fn rocm_core_repo_url(&self, _distro: &DistroFacade) -> String
pub fn rocm_core_repo_url(&self, _distro: &DistroFacade) -> String
Get the ROCm core repo URL for apt-based distros.
Sourcepub fn gpg_key_url(&self) -> &'static str
pub fn gpg_key_url(&self) -> &'static str
Get the GPG key URL.
Sourcepub fn amdgpu_install_deb_url(&self) -> String
pub fn amdgpu_install_deb_url(&self) -> String
Construct the amdgpu-install package download URL for apt-based distros.
Sourcepub fn amdgpu_install_rpm_url(&self, rhel_version: &str) -> String
pub fn amdgpu_install_rpm_url(&self, rhel_version: &str) -> String
Construct the amdgpu-install RPM download URL.
Sourcepub fn amdgpu_install_sles_rpm_url(&self) -> String
pub fn amdgpu_install_sles_rpm_url(&self) -> String
Construct the amdgpu-install SLES RPM download URL.
Sourcepub fn apt_install_commands(&self) -> Vec<PackageCommand>
pub fn apt_install_commands(&self) -> Vec<PackageCommand>
Construct the apt-get install command for amdgpu-install.
Sourcepub fn dnf_install_commands(&self, rhel_version: &str) -> Vec<PackageCommand>
pub fn dnf_install_commands(&self, rhel_version: &str) -> Vec<PackageCommand>
Construct the dnf install commands for ROCm.
Sourcepub fn pacman_install_commands(&self, aur_helper: &str) -> Vec<PackageCommand>
pub fn pacman_install_commands(&self, aur_helper: &str) -> Vec<PackageCommand>
Construct the pacman install commands for ROCm on Arch.
Arch uses AUR packages (yay/paru) for ROCm.
Build the pacman/AUR (yay) install command for ROCm.
yay MUST run as the user — makepkg refuses root and yay warns
“Avoid running yay as root/sudo”. This therefore returns a SINGLE
user-space command, never wrapped in sudo. (A bare sudo yay with no
operation defaults to yay -Syu, i.e. a full system upgrade, which is
what previously aborted ROCm installs.) The caller feeds yay’s internal
sudo pacman non-interactively — e.g. SUDO_ASKPASS +
--sudoflags=-A, as the installer’s Arch path does.
Sourcepub fn pacman_rocm_packages(&self) -> Vec<String>
pub fn pacman_rocm_packages(&self) -> Vec<String>
Get the list of ROCm AUR packages for pacman-based installs.
Sourcepub fn zypper_install_commands(&self) -> Vec<PackageCommand>
pub fn zypper_install_commands(&self) -> Vec<PackageCommand>
Construct the zypper install commands for ROCm on SUSE.
Sourcepub fn apt_repo_config(&self, distro: &DistroFacade) -> RepoConfig
pub fn apt_repo_config(&self, distro: &DistroFacade) -> RepoConfig
Get the repository configuration for apt-based distros.
Sourcepub fn amdgpu_apt_repo_config(&self, distro: &DistroFacade) -> RepoConfig
pub fn amdgpu_apt_repo_config(&self, distro: &DistroFacade) -> RepoConfig
Get the amdgpu repo configuration for apt-based distros.
Sourcepub fn apt_pin_config(&self) -> (String, String)
pub fn apt_pin_config(&self) -> (String, String)
Get the ROCm preference pin configuration for apt.
Sourcepub fn build_pacman_check_installed_command(package: &str) -> PackageCommand
pub fn build_pacman_check_installed_command(package: &str) -> PackageCommand
Build a command to check if a single package is installed on Arch/pacman.
Returns a PackageCommand that runs pacman -Qi <package>.
Exit code 0 means installed, non-zero means not installed.
Sourcepub fn filter_already_installed_pacman(packages: &[String]) -> Vec<String>
pub fn filter_already_installed_pacman(packages: &[String]) -> Vec<String>
Filter out packages that are already installed on Arch/pacman systems.
For each package in packages, runs pacman -Qi <pkg> to check if
it’s installed. Returns only the packages that are NOT yet installed.
In dry-run mode, returns all packages (no checks performed).
Sourcepub fn is_up_to_date_output(output: &str) -> bool
pub fn is_up_to_date_output(output: &str) -> bool
Check if command output indicates a package is already up to date.
yay/pacman output patterns that should be treated as success:
warning: <pkg> is up to date -- skipping<pkg> is up to date -- skippingthere is nothing to doalready installed.rc files restored(post-install message, not an error)
Auto Trait Implementations§
impl Freeze for RocmInstaller
impl RefUnwindSafe for RocmInstaller
impl Send for RocmInstaller
impl Sync for RocmInstaller
impl Unpin for RocmInstaller
impl UnsafeUnpin for RocmInstaller
impl UnwindSafe for RocmInstaller
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more