Красноя́рск (Russian) comes from Russian кра́сный, from Old East Slavic красьнъ, from Proto-Slavic krasьnъ, from Proto-Slavic krasa, from Proto-Indo-European kreH- — to shout.
Ancestry of “Красноя́рск”, step by step
Красноя́рск traces back through two separate lines of ancestry.