Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques

Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques: Maximise productivity of your Windows 10 development machine with custom workflows and configurations

eBook
$9.99 $26.99
Paperback
$38.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques

Chapter 1: Introduction to the Windows Subsystem for Linux

In this chapter, you will learn some of the use cases for the Windows Subsystem for Linux (WSL) and start to get an idea of what WSL actually is, and how it compares to just running a Linux virtual machine. This will aid us in our understanding of the rest of the book, where we will learn all about WSL and how to install and configure it, as well as picking up tips for getting the most from it for your developer workflows.

With WSL, you can run Linux utilities on Windows to help get your work done. You can build Linux applications using native Linux tooling such as debuggers, opening up a world of projects that only have Linux-based build systems. Many of these projects also produce Windows binaries as an output but are otherwise hard for Windows developers to access and contribute to. But because WSL gives you the combined power of Windows and Linux, you can do all of this and still use your favorite Windows utilities as part of your flow.

This book focuses on version 2 of WSL, which is a major reworking of the feature and this chapter will give you an overview of how this version works as well as how it compares to version 1.

In this chapter, we will cover the following topics in particular:

  • What is WSL?
  • Exploring the differences between WSL 1 and 2

So, let's begin by defining WSL!

What is WSL?

At a high level, WSL provides the ability to run Linux binaries on Windows. The desire to run Linux binaries has been around for many years, at least if the existence of projects such as Cygwin (https://cygwin.com ) is anything to go by. According to its homepage, Cygwin is 'a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows'. To run Linux application on Cygwin, it needs to be rebuilt from source. WSL provides the ability to run Linux binaries on Windows without modification. This means that you can grab the latest release of your favorite application and work with it immediately.

The reasons for wanting to run Linux applications on Windows are many and varied and include the following:

  • You are currently using Windows but have experience and familiarity with Linux applications and utilities.
  • You are developing on Windows but targeting Linux for the deployment of your application (either directly or in containers).
  • You are using developer stacks where the ecosystem has a stronger presence on Linux, for example, Python, where some libraries are specific to Linux.

Whatever your reason for wanting to run Linux applications on Windows, WSL brings you this capability and does so in a new and productive way. Whilst it has been possible to run a Linux virtual machine (VM) in Hyper-V for a long time, running a VM introduces some barriers to your workflow.

For example, starting a VM takes enough time for you to lose your flow of thought and requires a dedicated amount of memory from the host machine. Additionally, the file system in a VM is dedicated to that VM and isolated from the host. This means that accessing files between the Windows host and Linux VM requires setting up Hyper-V features for Guest Integration Services or setting up traditional network file sharing. The isolation of the VM also means that processes inside and outside the VM have no easy way to communicate with each other. Essentially, at any point in time, you are either working in the VM or outside of it.

When you first launch a terminal using WSL, you have a terminal application in Windows running a Linux shell. In contrast to the VM experience, this seemingly simple difference already integrates better into workflows as it is easier to switch between windows on the same machine than between applications on Windows and those in a VM session.

However, the work in WSL to integrate the Windows and Linux environments goes further. Whereas the file systems are isolated by design in a VM, with the WSL file system access is configured for you by default. From Windows, you can access a new \\wsl$\ networked file share that is automatically available for you when the WSL is running and provides access to your Linux file systems. From Linux, your local Windows drives are automatically mounted for you by default. For example, the Windows C: drive is mounted as /mnt/c.

Even more impressively, you can invoke processes in Linux from Windows and vice versa. As an example, as part of a Bash script in the WSL, you can invoke a Windows application and process the output from that application in Linux by piping it to another command, just as you would with a native Linux application.

This integration goes beyond what can be achieved with traditional VMs and creates some amazing opportunities for integrating the capabilities of Windows and Linux into a single, productive environment that gives you the best of both worlds!

The integration that has been achieved between the Windows host and the Linux VM environments with WSL is impressive. However, if you have used WSL 1 or are familiar with how it works, you may have read the previous paragraphs and wondered why WSL 2 moved away from the previous architecture, which didn't use a VM. In the next section, we'll take a brief look at the different architectures between WSL 1 and WSL 2 and what the use of a VM unlocks despite the extra challenges the WSL team faced to create the level of integration that we have just seen.

Exploring the differences between WSL 1 and 2

While this book discusses version 2 of the Windows Subsystem for Linux (WSL 2), it is helpful to briefly look at how version one (WSL 1) works. This will help you to understand the limitations of WSL 1 and provide context for the change in architecture in WSL 2 and the new capabilities that this unlocks. This is what will be covered in this section, after which the remainder of the book will focus on WSL 2.

Overview of WSL 1

In the first version of WSL, the WSL team created a translation layer between Linux and Windows. This layer implements Linux syscalls on top of the Windows kernel and is what enables Linux binaries to run without modification; when a Linux binary runs and makes syscalls, it is the WSL translation layer that it is invoking and that makes the conversion into calls to the Windows kernel. This is shown in the following figure:

Figure 1.1 – Outline showing the WSL 1 translation layer

Figure 1.1 – Outline showing the WSL 1 translation layer

In addition to the translation layer, there was also investments made to enable other capabilities such as file access between Windows and WSL and the ability to invoke binaries between the two systems (including capturing the output). These capabilities help to build the overall richness of the feature.

The creation of the translation layer in WSL 1 was a bold move and opened up new possibilities on Windows, however, not all of the Linux syscalls are implemented and Linux binaries can only run if all the syscalls they require are implemented. Fortunately, the syscalls that are implemented allow a wide range of applications to run, such as Python and Node.js.

The translation layer was responsible for bridging the gap between the Linux and Windows kernels and this posed some challenges. In some cases, bridging these differences added performance overhead. Applications that performed a lot of file access ran noticeably slower on WSL 1; for example, due to the overhead of translating between the Linux and Windows worlds.

In other cases, the differences between Linux and Windows run deeper and it is harder to see how to reconcile them. As an example, on Windows attempting to rename a directory when a file contained within it has been opened results in an error, whereas on Linux the rename can be successfully performed. In cases such as this, it is harder to see how the translation layer could have resolved the difference. This led to some syscalls not being implemented, resulting in some Linux applications that just couldn't be run on WSL 1. The next section looks at the changes made in WSL 2 and how they address this challenge.

Overview of WSL 2

As impressive a feat as the WSL 1 translation layer was, it was always going to have performance challenges and syscalls that were hard or impossible to implement correctly. With WSL 2, the WSL team went back to the drawing board and came up with a new solution: a virtual machine! This approach avoids the translation layer from WSL 1 by running the Linux kernel:

Figure 1.2 – Outline showing the WSL 2 architecture

Figure 1.2 – Outline showing the WSL 2 architecture

When you think of a virtual machine, you probably think of something that is slow to start (at least compared to starting a shell prompt), takes a big chunk of memory when it starts up, and runs in isolation from the host machine. On the face of it, using virtualization for WSL 2 might seem unexpected after the work put in to bring the two environments together in WSL 1. In fact, the capability to run a Linux VM has long existed on Windows. So, what makes WSL 2 different from running a virtual machine?

The big differences come with the use of what the documentation refers to as a Lightweight utility virtual machine (see https://docs.microsoft.com/en-us/windows/wsl/wsl2-about). This virtual machine has a rapid startup that only consumes a small amount of memory. As you run processes that require memory, the virtual machine dynamically grows its memory usage. Better still, as that memory is freed within the virtual machine, it is returned to the host!

Running a virtual machine for WSL 2 means that it is now running the Linux kernel (the source code for it is available at https://github.com/microsoft/WSL2-Linux-Kernel). This in turn means that the challenges faced by the WSL 1 translation layer are removed: performance and syscall compatibility are both massively improved in WSL 2.

Coupled with the work to preserve the overall experience of WSL 1 (interoperability between Windows and Linux), WSL 2 presents a positive step forward for most scenarios.

For most use cases, WSL 2 will be the preferred version due to compatibility and performance, but there are a couple of things worth noting. One of these is that (at the time of writing) the generally available version of WSL 2 doesn't support GPU or USB access (full details at https://docs.microsoft.com/en-us/windows/wsl/wsl2-faq#can-i-access-the-gpu-in-wsl-2-are-there-plans-to-increase-hardware-support). GPU support was announced at the Build conference in May 2020, and at the time of writing is available through the Windows Insiders Program (https://insider.windows.com/en-us/).

Another consideration is that because WSL 2 uses a virtual machine, applications running in WSL 2 will connect to the network via a separate network adapter from the host (which has a separate IP address). As we will see in Chapter 5, Linux to Windows Interoperability, the WSL team has made investments in network interoperability to help reduce the impact of this.

Fortunately, WSL 1 and WSL 2 can be run side by side so if you have a particular scenario where WSL 1 is needed, you can use it for that and still use WSL 2 for the rest.

Summary

In this chapter, you saw what WSL is and how it differs from the experience of a traditional VM by allowing integration between file systems and processes across the Windows and Linux environments. You also saw an overview of the differences between WSL 1 and WSL 2 and why, for most cases, the improved performance and compatibility make WSL 2 the preferred option.

In the next chapter, you will learn how to install and configure WSL and Linux distributions.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Configure and control WSL to suit your needs and preferences
  • Discover tips for working seamlessly between Windows and WSL Linux distros
  • Learn how to work effectively with containers in WSL, as well as how to containerize your development environments with Visual Studio Code to isolate your dependencies

Description

Windows Subsystem for Linux (WSL) allows you to run native Linux tools alongside traditional Windows applications. Whether you’re developing applications across multiple operating systems or looking to add more tools to your Windows environment, WSL offers endless possibilities. You’ll start by understanding what WSL is and learn how to install and configure WSL along with different Linux distros. Next, you'll learn techniques that allow you to work across both Windows and Linux environments. You’ll discover how to install and customize the new Windows Terminal. We'll also show you how to work with code in WSL using Visual Studio Code (VS Code). In addition to this, you’ll explore how to work with containers with Docker and Kubernetes, and how to containerize a development environment using VS Code. While Microsoft has announced support for GPU and GUI applications in an upcoming release of WSL, at the time of writing these features are either not available or only in early preview releases. This book focuses on the stable, released features of WSL and giving you a solid understanding of the amazing techniques that you can use with WSL today. By the end of this book, you’ll be able to configure WSL and Windows Terminal to suit your preferences, and productively use Visual Studio Code for developing applications with WSL.

Who is this book for?

This book is for developers who want to use Linux tools on Windows, including Windows-native programmers looking to ease into a Linux environment based on project requirements or Linux developers who've recently switched to Windows. This book is also for web developers working on open source projects with Linux-first tools such as Ruby or Python, or developers looking to switch between containers and development machines for testing apps. Prior programming or development experience and a basic understanding of running tasks in bash, PowerShell, or the Windows Command Prompt will be required.

What you will learn

  • Install and configure Windows Subsystem for Linux and Linux distros
  • Access web applications running in Linux from Windows
  • Invoke Windows applications, file systems, and environment variables from bash in WSL
  • Customize the appearance and behavior of the Windows Terminal to suit your preferences and workflows
  • Explore various tips for enhancing the Visual Studio Code experience with WSL
  • Install and work with Docker and Kubernetes within Windows Subsystem for Linux
  • Discover various productivity tips for working with Command-line tools in WSL
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 23, 2020
Length: 246 pages
Edition : 1st
Language : English
ISBN-13 : 9781800562448
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Oct 23, 2020
Length: 246 pages
Edition : 1st
Language : English
ISBN-13 : 9781800562448
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 143.97
Mastering Windows Security and Hardening
$54.99
Windows Subsystem for Linux 2 (WSL 2) Tips, Tricks, and Techniques
$38.99
40 Algorithms Every Programmer Should Know
$49.99
Total $ 143.97 Stars icon
Banner background image

Table of Contents

15 Chapters
Section 1: Introduction, Installation, and Configuration Chevron down icon Chevron up icon
Chapter 1: Introduction to the Windows Subsystem for Linux Chevron down icon Chevron up icon
Chapter 2: Installing and Configuring the Windows Subsystem for Linux Chevron down icon Chevron up icon
Chapter 3: Getting Started with Windows Terminal Chevron down icon Chevron up icon
Section 2:Windows and Linux – A Winning Combination Chevron down icon Chevron up icon
Chapter 4: Windows to Linux Interoperability Chevron down icon Chevron up icon
Chapter 5: Linux to Windows Interoperability Chevron down icon Chevron up icon
Chapter 6: Getting More from Windows Terminal Chevron down icon Chevron up icon
Chapter 7: Working with Containers in WSL Chevron down icon Chevron up icon
Chapter 8: Working with WSL Distros Chevron down icon Chevron up icon
Section 3: Developing with the Windows Subsystem for Linux Chevron down icon Chevron up icon
Chapter 9: Visual Studio Code and WSL Chevron down icon Chevron up icon
Chapter 10: Visual Studio Code and Containers Chevron down icon Chevron up icon
Chapter 11: Productivity Tips with Command-Line Tools Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.6
(8 Ratings)
5 star 62.5%
4 star 37.5%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




Healthy Shopper Dec 30, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Well written.
Amazon Verified review Amazon
Lirp Dec 29, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Straight forward, make a BACKUP of your entire system before ATTEMPTING anything, and experimenting/playing with you OS. Lesson learned the hard way. I was Very Very fortunate it did a complete system backup to a stand alone HD, & Gold high GB, DVD R/RW. If your system does not have a OPTIC, built in, buy a stand alone one, I only buy CD/DVD, ORIGINAL SYSTEM add on programs, saved my life thousands of times. Stay AWAY from online download program instead purchases. I WOULD NOT RECOMMEND a FLASH or USB device for a full emergency backup as things can get messy with interfacing, talking to each other, if you screw up bad.
Amazon Verified review Amazon
Fernando Rolnik Nov 01, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
As a DevOps professional, I used to work with Linux and Windows in dual boot. Since Microsoft has launched WSL2, I completely switched over to Windows. WSL 2 Tips, Tricks, and Techniques book offers the perfect knowledge. I was unaware of some superpowers it offers. This book provides PRO tips for experienced users and guidance for new users.Experienced users will find WSL insights to increase productivity and be able to take advantage of new things such as pipe Linux command output on Windows commands and vice versa, hence improving DevOps workflows.New users will quickly learn how to set up a fancy environment to work with Linux and Windows altogether, without having to reboot the computer, while it gives historical context for everyone. Furthermore, it has tips on how to customize your terminal and seamlessly use Docker.In summary, this book will turn you into a WSL superhero, and it will encourage IT professionals that use Linux or Mac users to switch to Windows 10 with WSL2 to enjoy the best of the two worlds.
Amazon Verified review Amazon
Mike Loux Feb 03, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Disclaimer: I was asked to review this book by the publishers, and received an electronic copy. I am always brutally honest in my reviews, and will not be otherwise here.The Preface says: "This book is for developers who want to use Linux tools on Windows," and they follow-through on their promise. It was written for people who are familiar with Windows and/or Linux and software development in general, but is still done so in an accessible manner, in case you are (like me) a bit rusty on either environment.I am a software developer by trade, and have been so for over 25 years, but I have not done a lot in Linux in recent memory (It's all been Windows and .NET, with a focus on PowerShell in the past year when I switched jobs). I had no problem following the book. I found the conventions and formatting to be excellent - code is clearly denoted as such, and the instructions were very easy to follow.I had already set up a WSL2 environment late this past year, but it was nice to be able to go through the chapters and see what I did right or wrong (more of the former, less of the latter, thankfully). And I definitely learned quite a bit during the read - I didn't know about the drive or command mappings between the two environments, so this has been a learning experience.At the time of this review, I am only about halfway through the book - I am fiddling around with the Docker examples, and those will prove very useful to me as we use Docker at my place of employment. Looking forward to finishing the book and leveraging the rest of the information.I really don't have much bad to say at all about what I have read so far. There were a few errata, but that sort of thing is to be expected in a book of this size, and I imagine someone has already reported those. And given that Windows Terminal is still in active development (and the preferences file has already undergone a big change), I expect that section of the book will become obsolete fairly quickly.Also, when attempting to convert my Linux distros from WSL1 to WSL2 last fall, I did encounter some errors, and it would have been nice to see more troubleshooting tips in the book on what happens if you encounter this sort of thing (in my case, it seems to have stemmed from an incompatibility with Cisco AnyConnect VPN software - at any rate, it seems to have resolved itself after a couple of Windows updates).That being said, I don't see any of the above detractors as being enough to ding the review any stars - this is an excellent book, and I would have no problem recommending it to anyone who wants to do a deep-dive on WSL2.
Amazon Verified review Amazon
Brady Gaster Dec 08, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Full disclaimer: I was asked by the publisher and author to review this book, but was excited to do so as I am a Mac user who uses Windows in a VM for developing and who has longed for a deeper understanding of how to use WSL in a development environment.Overview: This book is for anyone who develops on Windows, but who prefers a bash and/or Linux terminal environment for deeper interfacing during development time. I am primarily a Mac and Linux user, but I do a lot of work inside of a VM using Visual Studio, and as such, also need to use the terminal for working with .NET CLI, Azure CLI, and Docker. So whilst I prefer the idea of a Linux terminal, I'd not yet had the time to "go deep" with WSL. This book offers that - and far more - to anyone who wants the Linux experience on Windows.Written with PersonalityThe author is honest and engaging, and having seen him at conferences, his voice comes through in the text. There are numerous historical items and interesting side-notes, like the naming format for Windows versions and other little anecdotes early on. Web developers will pick up on some of the easter egg jokes in the text as well, and it keeps the book's pace right on point.Deep with DetailsThe book covers a wide swath of topics you'd imagine someone using WSL on Windows would need to know how to do - pathing both directions, interacting with PowerShell (and back again) from the host OS, and so on. At interesting points there are small tidbits of information that are utilitarian but ubiquitous; right at the end of Chapter 4, the author provides a small demo of how to "hit localhost" from within a WSL environment. The timing was perfect - as a web developer myself, I'd begun just prior to this segment to become concerned about the "virtualness" of the WSL 2.0 environment and wondered if it'd impact my own web development efforts, so it was a welcome aside, and right-on-time. This book is *crucial* library material for someone who would be developing on Windows but who needs to "swap back and forth" between their traditional PowerShell environment and the WSL environment.HUGE Developer Productivity TipsThe chapters that cover productivity tips for developing using WSL are fantastic, as are those on getting Docker containers and Kubernetes set up. The book takes a very deliberate approach to guiding you through the process of getting not only the container-execution and hosting environment up and running, but also through the process of configuring Visual Studio Code to work seamlessly with those containers and orchestration environments. I was specifically excited to see the book call out how to use jq, as that's one of the terminal tools I can't live without, so seeing it in the book was a nice addition.Ideas for ImprovementThe book would benefit from having a "setup" phase in which the reader is walked through emulating the exact UI experience as the screen shots. I found myself wanting to emulate that *to the letter* as I am a ZSH user who adopted a similar terminal style some years ago. As such, it would be great if one of the chapters in the accompanying download represented "how to make your experience look just like the book's experience." I may have missed it, too, but I don't think I saw any mention of how to use the Visual Studio Code tools for Kubernetes in the book - that's a great extension that I think would serve the book (or a second edition) rather well.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela