Bonce41 Mac OS
This page describes how to install ROS Melodic on macOS. macOS is not officially supported by ROS and the installation might fail.
To date, Macintosh Repository served 1444945 old Mac files, totaling more than 287301.8GB! Downloads last 24h = 800: 140038.4MB Last 5000 friend visitors from all around the world come from. Mac 1 is a hybrid marijuana strain that crosses Alien Cookies F2 with Miracle 15. Mac 1 is a popular strain that consumers turn to for upbeat and balancing effects. But Mac 1 is special because.
This is a work in progress! At present, the instructions cover only the installation of ROS-Comm (Bare Bones) variant and tested on the following configuration:
- - macOS Mojave + native (Apple) Python 2.7.10 + XCode 11.2.1
Contents
- Installation Instructions for Melodic in macOS (OS X)
- Setup
- Installation
- Maintaining a Source Checkout
- Troubleshooting
Setup
Homebrew
First, go to http://brew.sh to install homebrew and install some additional software:
Add our ROS dependencies tap and the Homebrew Core tap so you can get some non-standard formulae:
Note: if you are upgrading from previous ROS distro try this before installing:
In general it is not recommended to try and install multiple ROS versions at the same time on macOS due to conflicting system dependencies.
Setup Environment
You will need to tell Python about modules installed by Homebrew. The recommended way of doing this are the following commands:
Additional Tools
Finally, we need to install a few ROS python tools using 'pip'.
Install the following packages using 'pip':
Initializing rosdep
Installation
Start by building the core ROS packages.
Create a catkin Workspace
In order to build the core packages, you will need a catkin workspace. Create one now:
Next we will want to fetch the core packages so we can build them. We will use vcstool for this. Select the vcstool command for the particular variant you want to install:
Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
Desktop Install (recommended): ROS, rqt, rviz, and robot-generic libraries
ROS-Comm: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
This will add all of the catkin packages in the given variant and then fetch the sources into the ~/ros_catkin_ws/src directory. The command will take a few minutes to download all of the core ROS packages into the src folder. The -j8 option downloads 8 packages in parallel.
In addition to the 3 variants above, more are defined in REP 131 such as robot, perception, etc. Just change the package path to the one you want, e.g., for robot do:
Modify Some CMake Config Files
Now you will modify four CMake configuration files to avoid some compile and linker issues on MacOS.
Edit the files src/ros_comm/rosbag/CMakeLists.txt and src/ros_comm/rosbag_storage/CMakeLists.txt by adding the lines below. Where you put it doesn’t really matter.. you can just insert them after the project(“package_name”) line at the top of the file.
Edit the file src/ros_comm/message_filters/CMakeLists.txt by removing the Boost.Signals package dependency. Look for the line:
and change it to:
Edit the file src/ros_comm/roscpp/CMakeLists.txt by removing the Boost.Signals package dependency. Look for the line:
and change it to:
Resolving Dependencies
Before you can build your catkin workspace you need to make sure that you have all the required dependencies. We use the rosdep tool for this:
This will look at all of the packages in the src directory and find all of the dependencies they have. Then it will recursively install the dependencies.
The --from-paths option indicates we want to install the dependencies for an entire directory of packages, in this case src. The --ignore-src option indicates to rosdep that it shouldn't try to install any ROS packages in the src folder from the package manager, we don't need it to since we are building them ourselves. The --rosdistro option is required because we don't have a ROS environment setup yet, so we have to indicate to rosdep what version of ROS we are building for. The -y option indicates to rosdep that we don't want to be bothered by too many prompts from the package manager. The --skip-keys option suppresses some dependency error messages.
After a while (and maybe some prompts for your password) rosdep will finish installing system dependencies and you can continue.
Note: After running rosdep you will see the error below, so you may encounter issues when running roslisp or rosbag. (would be great if someone can test) .
Building the catkin Workspace
Once it has completed downloading the packages and resolving the dependencies you are ready to build the catkin packages. We will use the catkin_make_isolated command because there are both catkin and plain cmake packages in the base install, when developing on your catkin only workspaces you may choose to use catkin/commands/catkin_make which only works with catkin packages.
Invoke catkin_make_isolated:
Note: The -DCMAKE_MACOSX_RPATH and -DCMAKE_INSTALL_RPATH flags are mandatory. They are needed by roscore (and other programs) to find the *.dylib libraries at runtime.
Note: The default catkin installation location would be ~/ros_catkin_ws/install_isolated, if you would like to install somewhere else then you can do this by adding the --install-space /opt/ros/melodic argument to your catkin_make_isolated call.
For usage on a robot without Ubuntu, it is recommended to install compiled code into /opt/ros/melodic just as the Ubuntu packages would do. Don't do this in Ubuntu, as the packages would collide with apt-get packages. It is also possible to install elsewhere (e.g. /usr), but it is not recommended unless you really know what you are doing.
Please see REP 122: Filesystem Hierarchy Layout for more detailed documentation on how the installed files are placed.
Note: In the above command we are running the catkin_make_isolated command from the catkin source folder because it has not been installed yet, once installed it can be called directly.
Now the packages should have been installed to ~/ros_catkin_ws/install_isolated or to wherever you specified with the --install-space argument. If you look in that directory you will see that a setup.bash file have been generated. To utilize the things installed there simply source that file like so:
Maintaining a Source Checkout
If we want to keep our source checkout up to date, we will have to periodically update our rosinstall file, download the latest sources, and rebuild our workspace.
Update the workspace
To update your workspace, first move your existing rosinstall file so that it doesn't get overwritten, and generate an updated version. For simplicity, we will cover the *destop-full* variant. For other variants, update the filenames and rosinstall_generator arguments appropriately.
Then, compare the new rosinstall file to the old version to see which packages will be updated:
If you're satisfied with these changes, incorporate the new rosinstall file into the workspace and update your workspace:
Rebuild your workspace
Now that the workspace is up to date with the latest sources, rebuild it:
If you specified the --install-space option when your workspace initially, you should specify it again when rebuilding your workspace
Once your workspace has been rebuilt, you should source the setup files again:
Troubleshooting
Free to add any tips or workarounds found for installing Melodic on macOS. Troubleshooting from previous releases of ROS are located here:
http://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source#Troubleshooting
'No definition of [google-mock] for OS [osx]' error during rosdep install
Add --skip-keys google-mock to rosdep install
empy fails
‘ImportError: No module named Crypto’
DYLD_LIBRARY_PATH Problems
Rerun catkin_make_isolated with the CMAKE_MACOSX_RPATH and CMAKE_INSTALL_RPATH flags.
ON THIS PAGE
Media Access Control security (MACsec) provides point-to-point security on Ethernetlinks. MACsec is defined by IEEE standard 802.1AE. You can use MACsec in combination withother security protocols, such as IP Security (IPsec) and Secure Sockets Layer (SSL), to provideend-to-end network security.
MACsec is capable of identifying and preventing most security threats, including denialof service, intrusion, man-in-the-middle, masquerading, passive wiretapping, and playbackattacks. MACsec secures an Ethernet link for almost all traffic, including frames from theLink Layer Discovery Protocol (LLDP), Link Aggregation Control Protocol (LACP), Dynamic HostConfiguration Protocol (DHCP), Address Resolution Protocol (ARP), and other protocols thatare not typically secured on an Ethernet link because of limitations with other security solutions.
How MACsec Works
When MACsec is enabled on a point-to-point Ethernet link, the link is secured aftermatching security keys are exchanged and verified between the interfaces at each end of thelink. The key can be configured manually, or can be generated dynamically, depending on thesecurity mode used to enable MACsec. For more information on MACsec security modes, see MACsec Security Modes.
MACsec uses a combination of data integrity checks and encryption to secure traffictraversing the link:
When MACsec is enabled on a logical interface, VLAN tags are not encrypted. All theVLAN tags configured on the logical interface enabled for MACsec are sent in clear text.
Connectivity Associations
MACsec is configured in connectivity associations. A connectivity association is a setof MACsec attributes that are used by interfaces to create two secure channels, one for inboundtraffic and one for outbound traffic. The secure channels are responsible for transmittingand receiving data on the MACsec-secured link.
The connectivity association must be assigned to a MACsec-capable interface on eachside of the point-to-point Ethernet link. If you want to enable MACsec on multiple Ethernetlinks, you must configure MACsec individually on each link. Other user-configurable parameters,such as MAC address or port, must also match on the interfaces on each side of the link toenable MACsec.
MACsec Security Modes
MACsec can be enabled using one of the following security modes:
Static connectivity association key (CAK) mode
Static secure association key (SAK) mode
Dynamic secure association key (SAK) mode
Static CAK mode is recommended for switch-to-switch, or router-to-router, links. StaticCAK mode ensures security by frequently refreshing to a new random security key and by sharingonly the security key between the two devices on the MACsec-secured point-to-point link. Additionally,some optional MACsec features—replay protection, SCI tagging, and the ability to excludetraffic from MACsec—are available only when you enable MACsec using static CAK securitymode.
Static CAK Mode (Recommended for Switch-to-Switch Links)
When you enable MACsec using static CAK security mode, two security keys—a connectivityassociation key (CAK) that secures control plane traffic and a randomly-generated secure associationkey (SAK) that secures data plane traffic—are used to secure the link. Both keys areregularly exchanged between both devices on each end of the point-to-point Ethernet link toensure link security.
You initially establish a MACsec-secured link using a pre-shared key when you are usingstatic CAK security mode to enable MACsec. A pre-shared key includes a connectivity associationname (CKN) and its own connectivity association key (CAK). The CKN and CAK are configuredby the user in the connectivity association and must match on both ends of the link to initiallyenable MACsec.
Once matching pre-shared keys are successfully exchanged, the MACsec Key Agreement (MKA)protocol is enabled. The MKA protocol is responsible for maintaining MACsec on the link, anddecides which switch on the point-to-point link becomes the key server. The key server thencreates an SAK that is shared with the switch at the other end of the point-to-point linkonly, and that SAK is used to secure all data traffic traversing the link. The key serverwill continue to periodically create and share a randomly-created SAK over the point-to-pointlink for as long as MACsec is enabled.
NoteIf the MACsec session is terminated due to a link failure, when the link is restored,the MKA key server elects a key server and generates a new SAK.
To enable MACsec in static CAK mode, you have to configure a connectivity associationon both ends of the link. The secure channels are automatically created. These secure channelsdo not have any user-configurable parameters; all configuration is done within the connectivityassociation but outside of the secure channel.
NoteThe switches on each end of a MACsec-secured switch-to-switch link must either bothbe using Junos OS Release 14.1X53-D10 or later, or must both be using an earlier version ofJunos, in order to establish a MACsec-secured connection when using static CAK security mode.
Static SAK Security Mode
Static SAK security mode can be used to secure switch-to-switch links. Use this modeonly is you have a compelling reason to use it instead of static CAK mode, which is the recommendedmode for switch-to-switch links.
In static SAK security mode, one of up to two manually configured SAKs is used to securedata traffic on the point-to-point Ethernet link. All SAK names and values are configuredby the user; there is no key server or other tool that creates SAKs. Security is maintainedon the point-to-point Ethernet link by periodically rotating between the two security keys.Each security key name and value must have a corresponding matching value on the interfaceat the other end of the point-to-point Ethernet link to maintain MACsec on the link.
To enable MACsec in static SAK mode, you must configure a connectivity association,and configure the secure channels within that connectivity association. A typical connectivityassociation for static SAK mode contains two secure channels that have each been configuredwith two manually-configured SAKs.
Dynamic SAK Security Mode
Use dynamic SAK security mode to enable MACsec on a switch-to-host link. The endpointdevice must support MACsec and must be running software that allows it to enable a MACsec-securedconnection.
When configuring MACsec on a switch-to-host link, the MACsec Key Agreement (MKA) keys,which are included as part of 802.1X authentication, are retrieved from a RADIUS server aspart of the AAA handshake. A master key is passed from the RADIUS server to the switch andfrom the RADIUS server to the host in independent authentication transactions. The masterkey is then passed between the switch and the host to create a MACsec-secured connection.
A secure association using dynamic secure association security mode must be configuredon the switch’s Ethernet interface that connects to the host in order for the switchto create a MACsec-secured connection after receiving the MKA keys from the RADIUS server.
The RADIUS server must be using Extensible Authentication Protocol-Transport Layer Security(EAP-TLS) in order to support MACsec. The RADIUS servers that support other widely-used authenticationframeworks, such as password-only or md5, cannot be used to support MACsec. In order to enableMACsec on a switch to secure a connection to a host, you must be using 802.1X authenticationon the RADIUS server. MACsec must be configured into dynamic mode.
To enable MACsec in dynamic SAK mode, you have to configure a connectivity associationon both ends of the link. The secure channels are automatically created. These secure channelsdo not have any user-configurable parameters; all configuration is done within the connectivityassociation but outside of the secure channel.
MACsec Software Image Requirements for EX Series and QFX Series Switches
Junos OS Release 16.1 and Later
For Junos OS Release 16.1 and later, you must download the standard Junos image to enableMACsec. MACsec is not supported in the limited image. See the MACsec Hardware and Software Support Summary to determine the correct release for your device.
The standard version of Junos OS software contains encryption and is, therefore, notavailable to customers in all geographies. The export and re-export of this Junos OS softwareis strictly controlled under United States export laws. The export, import, and use of thisJunos OS software is also subject to controls imposed under the laws of other countries. If you have questions about acquiring this version of your Junos OS software, contact JuniperNetworks Trade Compliance group at compliance_helpdesk@juniper.net.
Junos OS Releases Prior to 16.1
For releases prior to Junos OS Release 16.1, you must download the controlled versionof your Junos OS software to enable MACsec. MACsec support is not available in the domesticversion of Junos OS software in releases prior to Junos OS Release 16.1. See the MACsec Hardware and Software Support Summary to determine the correct release for your device.
The controlled version of Junos OS software includes all features and functionalityavailable in the domestic version of Junos OS, while also supporting MACsec. The domesticversion of Junos OS software is shipped on all switches that support MACsec, so you must downloadand install a controlled version of Junos OS software for your switch before you can enableMACsec.
The controlled version of Junos OS software contains encryption and is, therefore, notavailable to customers in all geographies. The export and re-export of the controlled versionof Junos OS software is strictly controlled under United States export laws. The export, import,and use of the controlled version of Junos OS software is also subject to controls imposedunder the laws of other countries. If you have questions about acquiring the controlled versionof your Junos OS software, contact Juniper Networks Trade Compliance group at compliance_helpdesk@juniper.net.
MACsec Support on MX, ACX, and PTX Series Routers
Table 1 lists the devices which support MACsec.
Table 1: MACsec on MX, PTX, ACX, and NFX Series Devices
Device | Line Card / MIC | Support introduced in Junos OS Release |
---|---|---|
MX240, MX480, and MX960 | MIC-3D-20GE-SFP-E | 14.2 and 15.1 |
MX240, MX480, MX960, MX2010, and MX2020 | MPC7E-10G | 16.1 |
MX10003 | JNP-MIC1-MACSEC | 17.3R2 |
ACX6360 | NA | 18.2R1 |
PTX10008 | PTX10K-LC1105 | 18.2R1 |
PTX10008 | PTX10K-LC1105 | 18.2R1 |
PTX10008 and PTX10016 | PTX10K-LC1105 | 18.3R1 |
MX240, MX480, MX960, MX2010, and MX2020 | MPC10E-15C and MPC10E-10C | 19.1R1 |
ACX5448-M (1GbE/10GbE ports) | NA | 19.3R1 |
PTX10003 (1GbE/40GbE/100GbE ports) | NA | 19.3R1-EVO |
MX2010 and MX2020 | MX2K-MPC11E | 20.1R1 |
NFX350 | NA | 20.4R1 |
ACX6360 and ACX5448-M routers support MACsec with AES-256 encryption.
MACsec can be configured on supported MX Series routers that are members of a VirtualChassis. Encryption and decryption are implemented in the hardware in line-rate mode. An additionaloverhead of 24 through 32 bytes is required for MACsec if Secure Channel Identifier (SCI)tag is included.
For more information regarding MACsec, refer the following IEEE specifications:
IEEE 802.1AE-2006. Media Access Control (MAC) Security
IEEE 802.1X-2010. Port-Based Network Access Control. Defines MACSec Key AgreementProtocol
MACsec Software Requirements for MX Series Routers
Following are some of the key software requirements for MACsec on MX Series Routers:
NoteA feature license is not required to configure MACsec on MX Series routers with theenhanced 20-port Gigabit Ethernet MIC (model number MIC-3D-20GE-SFP-E).
MACsec is supported on MX Series routers with MACsec-capable interfaces.
MACsec supports 128 and 256-bit cipher-suite withand without extended packet numbering (XPN).
MACsec supports MACsec Key Agreement (MKA) protocol with Static-CAK mode using presharedkeys.
MACsec supports a single connectivity-association (CA) per physical port or physicalinterface.
Starting with Junos OS Release 15.1, MACsec issupported on member links of an aggregated Ethernet (Bonce41 Mac Os X Table 2: MACsec Hardware andSoftware Support Summary for EX Series and QFX Series Switches Switch MACsec-capable Interfaces Switch-to-Switch Support Introduction Switch-to-Host Support Introduction Encryption EX3400 10GbE fiber interfaces and 1GbE copper interfaces. 15.1X53-D50 15.1X53-D50 AES-128 Note: MACsec is not available on the limited Junos OS image package. EX4200 All uplink port connections on the SFP+ MACsec uplink module. 13.2X50-D15 14.1X53-D10 AES-128 EX4300 All access and uplink ports. Both QSFP+ interfaces on the EX-UM-2QSFP-MR uplink module for EX4300-48MP switches. 13.2X50-D15 14.1X53-D10 AES-128 AES-256 (EX4300-48MP only) EX4550 All EX4550 optical interfaces that use the LC connection type.See Pluggable Transceivers Supported on EX4550 Switches. 13.2X50-D15 14.1X53-D10 AES-128 EX4600 All twenty-four fixed 1GbE SFP/10GbE SFP+ interfaces and all interfaces that supportthe copper Gigabit Interface Converter (GBIC). All eight SFP+ interfaces on the EX4600-EM-8F expansion module. 14.1X53-D15 Note: MACsec is not supported on EX4600 in Junos OS Release 15.1. Not supported AES-128 EX9200 All forty SFP interfaces on the EX9200-40F-M line card. All twenty SFP interfaces on the EX9200-20F-MIC installed in an EX9200-MPC line card. Note: You can install up to two EX9200-20F-MIC MICs in an EX9200-MPC line card for a maximumof forty MACsec-capable interfaces. All forty SFP+ interfaces on the EX9200-40XS. 15.1R1 15.1R1 AES-128 Note: Starting in Junos OS Release 18.2R1, AES-256is supported on the EX9200-40XS line card. QFX5100 All eight SFP+ interfaces on the EX4600-EM-8F expansion module installed in a QFX5100-24Qswitch. 14.1X53-D15 Note: MACsec is not supported on QFX5100-24Q switches in Junos OS Release 15.1. Not supported AES-128 QFX10008 and QFX10016 All six interfaces on the QFX10000-6C-DWDM line card. 17.2R1 Note: Static CAK mode only. Not supported AES-128 and AES-256 Note: When enabling MACsec on the QFX10000-6C-DWDM line card, we recommend using a ciphersuite with extended packet numbering (XPN). Supported XPN cipher suites are GCM-AES-XPN-128and GCM-AES-XPN-256. All 30 interfaces on the QFX10000-30C-M line card. 17.4R1 Note: Static CAK mode only. Not supported AES-128 and AES-256 Note: When enabling MACsec on the QFX10000-30C-M line card, we recommend using a cipher suitewith extended packet numbering (XPN). Supported XPN cipher suites are GCM-AES-XPN-128 andGCM-AES-XPN-256. MACsec can be configured on supported switch interfaces when those switches are configuredin a Virtual Chassis or Virtual Chassis Fabric (VCF), includingwhen MACsec-supported interfaces are on member switches in a mixed Virtual Chassis or VCFthat includes switch interfaces that do not support MACsec. MACsec, however, cannot be enabledon Virtual Chassis ports (VCPs) to secure traffic travelling between member switches in aVirtual Chassis or VCF. A feature license is required to configure MACsec on EX Series and QFX series switches,with the exception of the QFX10000-6C-DWDM and QFX10000-30C-M line cards. If the MACsec licenceis not installed, MACsec functionality cannot be activated. To purchase a feature license for MACsec, contact your Juniper Networks sales representative(https://www.juniper.net/us/en/contact-us/sales-offices). The Juniper sales representative will provide you with a feature license fileand a license key. You will be asked to supply the chassis serial number of your switch; youcan obtain the serial number by running the no- auto-negotiation on PHY84756 1G SFP ports before configuring MACsec on those ports.Bonce41 Mac Os Update
Understanding MACsec in a Virtual Chassis
Understanding the MACsec Feature License Requirement
Bonce41 Mac Os Catalina
Related Documentation
Bonce41 Mac Os Download