```python
from typing import List

def install_order(packages: List[str], requires: List[List[str]]) -> List[str]:
    def validate_packages(packages: List[str]) -> None:
        seen = set()
        for pkg in packages:
            if pkg in seen:
                raise ValueError("Package name listed twice.")
            seen.add(pkg)
    
    def validate_requirements(requires: List[List[str]], packages: List[str]) -> None:
        for pkg, needed in requires:
            if pkg not in packages or needed not in packages:
                raise ValueError("Requirement pair naming a package absent from the list.")
    
    def detect_cycle(packages: List[str], requires: List[List[str]]) -> bool:
        visited = set()
        stack = set()
        
        def dfs(pkg):
            if pkg in stack:
                return True
            if pkg in visited:
                return False
            
            visited.add(pkg)
            stack.add(pkg)
            
            for needed in requires:
                if needed[0] == pkg:
                    if dfs(needed[1]):
                        return True
            
            stack.remove(pkg)
            return False
        
        for pkg in packages:
            if pkg not in visited:
                if dfs(pkg):
                    return True
        
        return False
    
    validate_packages(packages)
    validate_requirements(requires, packages)
    if detect_cycle(packages, requires):
        raise ValueError("Requirements form a cycle.")
    
    needs = {name: 0 for name in packages}
    enables = {name: [] for name in packages}
    for pkg, needed in requires:
        needs[pkg] += 1
        enables[needed].append(pkg)
    ready = [name for name in packages if needs[name] == 0]
    order = []
    while ready:
        next_name = ready.pop()
        order.append(next_name)
        for follower in enables[next_name]:
            needs[follower] -= 1
            if needs[follower] == 0:
                ready.append(follower)
    return order
```