If a function requires add_action(‘init’) how can I run it only once on plugin activation?

I don’t think there is a need to add the items to the init hook from the activation function. I think you can call them directly:

private static function single_activate() {
    self::add_partner_terms(); //$this->add_partner_terms();
    self::add_geo_terms();  //$this->add_geo_terms();
}

I’m not really sure if it should be self:: or $this-> because I’m a little bit fuzzy about OOP, especially tonight.