See Install a Package.
I have a managed package with permission set. I wanted to know what permission/access level does a user get when the package is installed for a specific user profile?
Do I need to explicitly assign the permission set to this user if I chose to install for this specific profile? Will the managed package tabs be visible for all users of this profile ?
When you choose to specify profiles, you get:
Enables you to choose the usage access for all custom profiles in your organization. You can set each profile to have full access or no access for the new package and all its components.
- Full Access—Specifies the following settings for each profile.
Object permissions—“Read,” “Create,” “Edit,” “Delete,” “View All,” and “Modify All” enabled
- Field-level security—set to visible and editable for all fields
- Visualforce pages—enabled
- App settings—enabled
- Tab settings—determined by the package creator
- Page layout settings—determined by the package creator
- Record Type settings—determined by the package creator
- No Access—Specifies the same settings as Full Access, except all object permissions are disabled.
As you can see, tab assignment will be specified by the package developer (e.g. Tab Hidden, Default Off, Default On). There is no need to assign permission sets to users that are granted Full Access, unless that permission set grants additional Tab access (e.g. the default for the tab is Tab Hidden, but a permission set specifies Tab On as an override).
Can I choose to install the managed package for a specific user ( not profile) ? If so, how?
No. You can only go as granular as the profile level. Of course, if the package is a managed package, you can add/remove the managed package license to determine access after installation. For unmanaged packages, you would instead need to clone the profile, assign that one user to the cloned profile, and then install the package for that profile.