diff --git a/.hadolint.yaml b/.hadolint.yaml
index 06de09b5460ee0e6bc8e7d6f3f3fdb3994358a8a..2010a459a5fcb0fc8d9b4101522f9345d05ea74b 100644
--- a/.hadolint.yaml
+++ b/.hadolint.yaml
@@ -3,3 +3,4 @@ ignored:
   - DL3008
   - DL3013
   - DL3018
+  - DL3042
diff --git a/Dockerfile b/Dockerfile
index f2a365b2b8af471171daed22bf85c8b4b36141bb..b61e1461c52baa06e3e3b376cff4e36f8999fe34 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -14,41 +14,29 @@ COPY requirements.txt homeassistant/
 COPY homeassistant/package_constraints.txt homeassistant/homeassistant/
 RUN \
     pip3 install \
-        --no-cache-dir \
         --only-binary=:all: \
-        --index-url "https://wheels.home-assistant.io/musllinux-index/" \
         -r homeassistant/requirements.txt
 
 COPY requirements_all.txt home_assistant_frontend-* home_assistant_intents-* homeassistant/
 RUN \
     if ls homeassistant/home_assistant_frontend*.whl 1> /dev/null 2>&1; then \
-        pip3 install \
-            --no-cache-dir \
-            --no-index \
-            homeassistant/home_assistant_frontend-*.whl; \
+        pip3 install homeassistant/home_assistant_frontend-*.whl; \
     fi \
     && if ls homeassistant/home_assistant_intents*.whl 1> /dev/null 2>&1; then \
-        pip3 install \
-            --no-cache-dir \
-            --no-index \
-            homeassistant/home_assistant_intents-*.whl; \
+        pip3 install homeassistant/home_assistant_intents-*.whl; \
     fi \
     && \
         LD_PRELOAD="/usr/local/lib/libjemalloc.so.2" \
         MALLOC_CONF="background_thread:true,metadata_thp:auto,dirty_decay_ms:20000,muzzy_decay_ms:20000" \
         pip3 install \
-            --no-cache-dir \
             --only-binary=:all: \
-            --index-url "https://wheels.home-assistant.io/musllinux-index/" \
             -r homeassistant/requirements_all.txt
 
 ## Setup Home Assistant Core
 COPY . homeassistant/
 RUN \
     pip3 install \
-        --no-cache-dir \
         --only-binary=:all: \
-        --index-url "https://wheels.home-assistant.io/musllinux-index/" \
         -e ./homeassistant \
     && python3 -m compileall \
         homeassistant/homeassistant
diff --git a/build.yaml b/build.yaml
index f9e19f89e23c53779ace02f99bcaaf7808b67f75..e931d193a58a2c870de647c0737422f51a880a4f 100644
--- a/build.yaml
+++ b/build.yaml
@@ -1,10 +1,10 @@
 image: ghcr.io/home-assistant/{arch}-homeassistant
 build_from:
-  aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2023.09.0
-  armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2023.09.0
-  armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2023.09.0
-  amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2023.09.0
-  i386: ghcr.io/home-assistant/i386-homeassistant-base:2023.09.0
+  aarch64: ghcr.io/home-assistant/aarch64-homeassistant-base:2023.10.0
+  armhf: ghcr.io/home-assistant/armhf-homeassistant-base:2023.10.0
+  armv7: ghcr.io/home-assistant/armv7-homeassistant-base:2023.10.0
+  amd64: ghcr.io/home-assistant/amd64-homeassistant-base:2023.10.0
+  i386: ghcr.io/home-assistant/i386-homeassistant-base:2023.10.0
 codenotary:
   signer: notary@home-assistant.io
   base_image: notary@home-assistant.io
diff --git a/homeassistant/requirements.py b/homeassistant/requirements.py
index 954de3bf5a67fff4e385b306e7eb290fd86943ab..27a9607a6ee8cebe89f7d4076f465dfce028533a 100644
--- a/homeassistant/requirements.py
+++ b/homeassistant/requirements.py
@@ -85,11 +85,8 @@ def pip_kwargs(config_dir: str | None) -> dict[str, Any]:
     is_docker = pkg_util.is_docker_env()
     kwargs = {
         "constraints": os.path.join(os.path.dirname(__file__), CONSTRAINT_FILE),
-        "no_cache_dir": is_docker,
         "timeout": PIP_TIMEOUT,
     }
-    if "WHEELS_LINKS" in os.environ:
-        kwargs["find_links"] = os.environ["WHEELS_LINKS"]
     if not (config_dir is None or pkg_util.is_virtual_env()) and not is_docker:
         kwargs["target"] = os.path.join(config_dir, "deps")
     return kwargs
diff --git a/homeassistant/util/package.py b/homeassistant/util/package.py
index 7de75c1e24f9a7a9c75f8b1f4382078950538a66..bc60953a1aa647dcf21cd343c311c9907a147b59 100644
--- a/homeassistant/util/package.py
+++ b/homeassistant/util/package.py
@@ -67,9 +67,7 @@ def install_package(
     upgrade: bool = True,
     target: str | None = None,
     constraints: str | None = None,
-    find_links: str | None = None,
     timeout: int | None = None,
-    no_cache_dir: bool | None = False,
 ) -> bool:
     """Install a package on PyPi. Accepts pip compatible package strings.
 
@@ -81,14 +79,10 @@ def install_package(
     args = [sys.executable, "-m", "pip", "install", "--quiet", package]
     if timeout:
         args += ["--timeout", str(timeout)]
-    if no_cache_dir:
-        args.append("--no-cache-dir")
     if upgrade:
         args.append("--upgrade")
     if constraints is not None:
         args += ["--constraint", constraints]
-    if find_links is not None:
-        args += ["--find-links", find_links, "--prefer-binary"]
     if target:
         assert not is_virtual_env()
         # This only works if not running in venv
diff --git a/tests/test_requirements.py b/tests/test_requirements.py
index 388e8607eca4c11d9bef9c786aa464cdcce09e61..4fa10b92706c7a7b23727657af0bcc38a8560173 100644
--- a/tests/test_requirements.py
+++ b/tests/test_requirements.py
@@ -42,7 +42,6 @@ async def test_requirement_installed_in_venv(hass: HomeAssistant) -> None:
             "package==0.0.1",
             constraints=os.path.join("ha_package_path", CONSTRAINT_FILE),
             timeout=60,
-            no_cache_dir=False,
         )
 
 
@@ -64,7 +63,6 @@ async def test_requirement_installed_in_deps(hass: HomeAssistant) -> None:
             target=hass.config.path("deps"),
             constraints=os.path.join("ha_package_path", CONSTRAINT_FILE),
             timeout=60,
-            no_cache_dir=False,
         )
 
 
@@ -379,10 +377,8 @@ async def test_install_with_wheels_index(hass: HomeAssistant) -> None:
 
         assert mock_inst.call_args == call(
             "hello==1.0.0",
-            find_links="https://wheels.hass.io/test",
             constraints=os.path.join("ha_package_path", CONSTRAINT_FILE),
             timeout=60,
-            no_cache_dir=True,
         )
 
 
@@ -406,7 +402,6 @@ async def test_install_on_docker(hass: HomeAssistant) -> None:
             "hello==1.0.0",
             constraints=os.path.join("ha_package_path", CONSTRAINT_FILE),
             timeout=60,
-            no_cache_dir=True,
         )
 
 
diff --git a/tests/util/test_package.py b/tests/util/test_package.py
index ff26cba0dd4f0895bb3124d7800a362f107d9c52..e64ea01ffa8364f0876e54554d5a44c699b16cdd 100644
--- a/tests/util/test_package.py
+++ b/tests/util/test_package.py
@@ -194,33 +194,6 @@ def test_install_constraint(mock_sys, mock_popen, mock_env_copy, mock_venv) -> N
     assert mock_popen.return_value.communicate.call_count == 1
 
 
-def test_install_find_links(mock_sys, mock_popen, mock_env_copy, mock_venv) -> None:
-    """Test install with find-links on not installed package."""
-    env = mock_env_copy()
-    link = "https://wheels-repository"
-    assert package.install_package(TEST_NEW_REQ, False, find_links=link)
-    assert mock_popen.call_count == 2
-    assert mock_popen.mock_calls[0] == call(
-        [
-            mock_sys.executable,
-            "-m",
-            "pip",
-            "install",
-            "--quiet",
-            TEST_NEW_REQ,
-            "--find-links",
-            link,
-            "--prefer-binary",
-        ],
-        stdin=PIPE,
-        stdout=PIPE,
-        stderr=PIPE,
-        env=env,
-        close_fds=False,
-    )
-    assert mock_popen.return_value.communicate.call_count == 1
-
-
 async def test_async_get_user_site(mock_env_copy) -> None:
     """Test async get user site directory."""
     deps_dir = "/deps_dir"