```python
from typing import *
from collections import *

def apply_overrides(base: dict, overrides: list) -> dict:
    """
    Apply command-line overrides to base settings.

    :param base: A flat mapping of setting names to string values.
    :param overrides: A list of strings, each being a name=value pair separated by exactly one '='.
    :return: A new dictionary with updated settings based on the overrides.
    """
    
    if not isinstance(overrides, list):
        raise ValueError("Overrides must be a list.")
    
    result = base.copy()  # Create a copy of base to avoid mutating it
    
    for override in overrides:
        parts = override.split('=', maxsplit=1)
        
        if len(parts) != 2:
            raise ValueError(f"Invalid override: {override}. It must be in the form 'name=value'.")
        
        name, value = parts
        
        if not name or '=' in name:
            raise ValueError(f"Override name cannot be empty or contain an equals sign: {override}.")
        
        if name not in base:
            raise ValueError(f"No such setting exists: {name}.")
        
        result[name] = value
    
    return result
```