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 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