Packages
Summary
RouterOS features are organized into packages, which are files with a .npk extension. Most features are bundled in the routeros package, while some features are provided as separate packages. Installing an additional .npk package enables specific features such as Containers or The Dude. Package files are provided exclusively by MikroTik and cannot be created by third parties. You can download extra packages from our download page, or add them directly from your router.
Minimum requirements
RouterOS requires only the system package to operate at a bare minimum, but for most devices standard operation and features are available when you install the "routeros" bundle package.
For wireless devices, several wireless packages are available, depending on the hardware you are using:
- Starting with RouterOS 7.13, the routeros (system) package and one of the following wireless packages are needed for the basic operation of a simple home router:
- 802.11ax WiFi APs require radio drivers, which are provided by the wifi-qcom package (for RouterOS versions earlier than 7.13 it was called the wifiwave2 package).
- Previous generation WiFi APs require a wireless package.
More information about which wireless package to use is available in the Wireless manual.
Other packages are optional and not required for a home router. Install them only if you are sure of their purpose.
Installing packages
Manual download
To manually download and install extra packages, download the necessary package from the MikroTik download page, selecting the RouterOS section based on your device's architecture found in the System/Resources menu. Extract the archive and upload the required package to your router by using any convenient method, and proceed to reboot the router.
Download directly from the router
You can download and install extra packages directly from the router by using the System Packages section.
- After executing the Check For Updates command, available packages will be listed in the Packages list, but they will show up as disabled. The available package list comes from the MikroTik download server. Those packages are available, but not yet on your router (as indicated by the flags X (Disabled) and A (Available)).
- To download an extra package, first select the package and select Enable.
- To make the router download the package, select Apply Changes and the device will ask for a reboot.
| Package list | After loading the list with "Check for updates" | Enabling a package | Selecting "Apply Changes" |
|---|---|---|---|
Verification of install
To make sure the package is installed successfully, check the "Log" section after the device is rebooted. If the package is installed successfully, you will see a message about it. If there have been conflicts or some requirement is not met, this will be explained, so you can take further steps to rectify that.
Success in the log entries
Failure in the log entries
System packages
| Package | Description |
|---|---|
| routeros-arm(arm) | System package for arm devices. |
| routeros-arm*(arm64)* | System package for arm64 devices. |
| routeros-mipsbe(mipsbe) | System package for mipsbe devices. |
| routeros-mmips(mmips) | System package for mmips devices. |
| routeros-smips (smips) | System package for smips devices. |
| routeros-tile (tile) | System package for tile devices. |
| routeros-ppc (ppc) | System package for ppc devices. |
| routeros (x86, CHR) | System package for x86 installations and CHR environment. |
Extra packages
| Package (supported architecture) | Description |
|---|---|
| calea (arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | Data gathering tool for specific use due to "Communications Assistance for Law Enforcement Act" in the USA. |
| container (arm, arm64, x86, CHR) | Container implementation of Linux containers, allowing users to run containerized environments in RouterOS. |
| dude (arm, arm64, mmips, tile, x86, CHR) | Dude tool that allows monitoring of the network environment. |
| extra-nic (arm64) | ARM64 CPU architecture Network Interface Card (NIC) support, recommended for UEFI installation on non-MikroTik boards. |
| gps (arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | Global Positioning System device support. |
| iot (arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | Enables: |
| iot-bt-extra (arm, arm64) | A package for ARM and ARM64 devices which enables the use of USB Bluetooth adapters (must support LE 4.0+). *note: Not all adapters were tested. We cannot guarantee beforehand that a specific adapter will work. |
| lora (arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | Dummy package for LoRa support. LoRa package is not obligatory anymore and is left only for compatibility reasons. LoRa functionality is moved into the iot package. |
| lte*(mipsbe)* | Required package only for SXT LTE (RBSXTLTE3-7), which contains drivers for the built-in LTE interface. |
| rose-storage (arm, arm64, tile, x86, CHR) | Additional enterprise data center functionality in RouterOS, supporting disk monitoring, improved formatting, RAIDs, rsync, iSCSI, NVMe over TCP, NFS, and improved SMB. |
| switch-marvell (arm64) | Mandatory driver package for CRS8xx series switches. |
| tr069-client (arm, arm64, mipsbe, mmips, smips, tile, ppc, x86, CHR) | TR069 Client package. |
| ups(arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | APC UPS management interface. |
| user-manager(arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | MikroTik User Manager server for controlling Hotspot and other service users. |
| wifi-qcom (arm, arm64) | Mandatory driver package for 802.11ax interfaces. Introduced in 7.13. WiFi CAPsMAN support comes with the system package. |
| wifi-qcom-ac (arm) | Optional WiFi driver package for compatible 802.11ac interfaces. Introduced in 7.13. |
| wireless (arm, arm64, mipsbe, mmips, tile, ppc, x86, CHR) | Utilities and drivers for managing WiFi (up to 802.11ac) and 60GHz wireless interfaces. This package is bundled into RouterOS for versions up to 7.12. Starting with 7.13, it is a separate package. The wireless package conflicts with wifi-qcom and wifi-qcom-ac packages — they cannot be active at the same time. |
| zerotier*(arm, arm64)* | Enables ZeroTier functionality. |
Working with packages
Sub-menu: /system/package
Sub-menu: /system/check-installation
Commands executed in this menu will take place only on the restart of the router. Until then, you can freely schedule or revert the set actions.
| Command | Description |
|---|---|
| disable | Schedule the package to be disabled after the next reboot. No features provided by the package will be accessible. |
| downgrade | Prompt for a reboot. During the reboot process, the router will try to downgrade RouterOS to the oldest version possible by checking the packages that are uploaded to the router. |
| enable | Schedule the package to be enabled after the next reboot. |
| uninstall | Schedule the package to be removed from the router. That will take place during the reboot. |
| unschedule | Remove the scheduled task for the package. |
| Output information about the packages, such as version, package state, planned state changes, etc. | |
| update | Manage the "check-for-updates" channel and perform RouterOS upgrades. |
| apply-changes | Apply scheduled changes and reboot the device. |
The "Check installation" function ensures the integrity of the RouterOS system by verifying the readability and correct placement of files. Its primary purpose is to confirm the health and status of your NAND/Flash storage.
Menu: The /system/package/update/install ignore-missing command allows upgrading only the RouterOS main package, while omitting packages that are either missing or not uploaded during a manual upgrade process.
Auto install
You can also automatically install packages after uploading them to the router with FTP or SFTP. The package file must be named with the extension *.auto.npk. Once the file is uploaded, the router will automatically go into reboot to install the package. This can be useful for scripting and automation.
The .auto.npk extension in the filename is mandatory for a package to be automatically installed.
Local Update
Instead of connecting directly to MikroTik servers, you can upload package files to one of your local RouterOS devices and use it as a local package server.
Sub-menu: /system/package/local-update
| Command | Description |
|---|---|
| download-all | Download all compatible (matching device architecture) packages that are available on the local package server. Downloaded packages are saved in the root directory. |
| download | Download specific compatible (matching device architecture) packages that are available on the local package server. Downloaded packages are saved in the root directory. |
| refresh | Refresh and check the list of available compatible (matching device architecture) packages on the local package server. |
The server from which to get the package can be defined in /system/package/local-update/update-package-source/.
Update-package-source properties
| Property | Description |
|---|---|
| address (IPv4 address [IPv4]/IPv6 address [IPv6]; Default: ) | Address of the local package server. |
| user (string; Default: ) | Username that is used for accessing the local package server. |
| password (string; Default: ) sensitive | Password that is used for accessing the local package server. |
You can also mirror packages (for all architectures) from your main local package server by using /system/package/local-update/mirror/. Downloaded packages are saved into the packs folder in the root directory.
Mirror properties
Sub-menu: /system/package/local-update/mirror
| Property | Description |
|---|---|
| primary-server (IPv4 address [IPv4]/IPv6 address [IPv6]; Default: ) | Address of the primary local package server. |
| secondary-server (IPv4 address [IPv4]/IPv6 address [IPv6]; Default: ) | Address of the secondary local package server. |
| user (string; Default: ) | Username that is used for accessing the local package server. |
| password (string; Default: ) sensitive | Password that is used for accessing the local package server. |
| check-interval (time [HH:MM:SS]; Default: 24:00:00) | Time interval at which the device checks the local package server for new package availability. If a new package is located, the package download begins. Only downloads the packages that are not already present on the device. |
| enabled (yes | no; Default: no) | Whether to enable the periodical check and download of packages from the local package server. |
| Command | Description |
|---|
Examples
Listing packages
The zerotier package is disabled, but installed; the iot package is available on the server, but has not been downloaded to the router and enabled; the dude package is scheduled for uninstall.
/system/package/print
Flags: X - DISABLED
Columns: NAME, VERSION, SCHEDULED
# NAME VERSION SCHEDULED
0 dude 7.9 scheduled for uninstall
1 X zerotier 7.9
2 routeros 7.9
3 XA iot 7.9
Uninstall package:
/system/package/uninstall dude; /system/reboot;
Reboot, yes? [y/N]:
Disable package:
/system/package/disable zerotier; /system/reboot;
Reboot, yes? [y/N]:
Downgrade:
/system/package/downgrade; /system/reboot;
Reboot, yes? [y/N]:
Cancel the uninstall or disable action:
/system/package/unschedule zerotier;
/system/package/unschedule dude;