linux

How to make an apt repository

My application should deliver packages via apt repository. After we create ubuntu packages we need to publish them. What is an efficient way of creating a package repository?

Dual Boot not working after Windows 10 update

After the latest Windows 10 update, GRUB will not let me pick an operative system. Instead, Windows 10 start immediately without asking me to pick an operative system, in my case Ubuntu or Windows. I noticed that my partitions are still there, so the Ubuntu is still there on my machine. How to resolve this issue?

How to properly back up Docker volumes?

My problem was to develop a backup strategy for a running Linux server with multiple docker containers which used docker volume to store data. The problem was that it’s not trivial to just tar an volume like an bind mount. The recommended way to achieve this is to first launch a new container and mount the volume from the running container. Then to mount an local host directory as e.g. “/backup” and finally to pass a command that tars the contents of the data volume to a backup.tar file inside our “/backup” directory.

Group conversations on Skype faulty, if one member's OS is Linux

The solution to this issue is very simple and trivial. The issue itself is a known problem in the community and many users experience it. Since Skype for Linux 4.3 is the newest available main version, uninstalling and reinstalling does not seem to help the problem.
In July 2016, Skype has introduced Skype Linux Alpha. Whilst this version seems to support group chats for users of various operating systems, it's alpha version still makes it unreliable if consistency is needed, e.g. professional purposes such as job interviews.

I have solved this problem by resolving to Skype's web version. Logging in with your account, enables the group conversation seamlessly, without the need to create a new group. Although group conversations are now possible, accepting an invite to share a screen does not seem to work herein.

Taggings:

Windows update causes grub error

Luckily the error message is shown within a terminal window which gives you the possibility to type in some commands. First of all have a look at the available partitions typing “ls”. Use the provided labels to look for the desired partition. Keep typing in the command “ls partition/grub2” (e.g. ls (hd0,msdos2)/grub2, ls (hd0,msdos3)/grub2), ...) until you don’t get the message “error: unknown filesystem.” any more. Let's assume that you have found the partition (hd0,msdos2). Type in the following commands:
set root=(hd0,msdos2)
set prefix=(hd0,msdos2)/grub2
insmod normal
normal

After that the system should reboot normally. To tell grub that it should remember this setup and avoid the unpleasant situation that you have to type in these lines every time, execute the next commands within your linux shell where /dev/sda is the drive where grub shall be installed.
sudo update-grub
sudo grub-install /dev/sda

Chrome on Ubuntu causes kernel panic

This article solves the following challenge: 

Chrome on Ubuntu causes kernel panic

This article solves the following challenge: 
Chrome on Ubuntu causes kernel panic
This article solves the following challenge: 
Chrome on Ubuntu causes kernel panic
This article solves the following challenge: 
Chrome on Ubuntu causes kernel panic
This article solves the following challenge: 
Chrome on Ubuntu causes kernel panic
The freezing itself would be a classical hint pointing towards some problems with the driver of the used GPU. However there are several things one can do to avoid this very unpleasant system behavior. Chrome, like other modern browsers, has the possibility to fall back on other components besides the regular CPU when it comes to tasks that are not very suitable for it (e.g. graphical processing with the GPU). This option is called “hardware acceleration” and can be deactivated. To do that, you only have to go into the options menu of Chrome, expand the advanced settings and scroll down to the system settings. Uncheck the corresponding checkbox.
This solution works fine, but now Chrome can’t optimize its performance any more using the available hardware. Another option is to target the used graphical driver itself. Therefore open up the Ubuntu system settings, search for “Software & Updates”, switch to the tab called “Additional drivers” and wait for the list to be loaded. Look for the graphic card driver and try a “proprietary” one.
If this problem occurs with the 64 bit version of Chrome, another thing that can be tried, is to use the 32 bit one. I did not try this myself, but I have read, that it have solved the problem in some cases.
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
No votes yet
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
Your rating: 3 Average: 3 (1 vote)
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
Your rating: 3 Average: 3 (1 vote)
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
Your rating: 3 Average: 3 (1 vote)

Evaluate complexity of present statement:

Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert

Your rating: 3 Average: 3 (1 vote)

Taggings:

Switching between Java Versions on a Linux machine

This article solves the following challenge: 

Switching between Java Versions

This article solves the following challenge: 
Switching between Java Versions
This article solves the following challenge: 
Switching between Java Versions
On a computer where Linux is used as the operation system, the following line shows all currently installed Java versions with the complete path:
sudo update-alternatives --config java
Choosing a version here will result in the current default version.
Also, it is possible to bind an alias to a java version by adding following line to $HOME/.bashrc
alias javaX='/path_to_javaX/bin/java
alias javacX='/path_to_javacX/bin/javac
to enable choosing a non-default version of java
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
Your rating: None Average: 3 (1 vote)
Evaluate complexity of present statement:
Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert
Your rating: 3 Average: 3 (2 votes)

Evaluate complexity of present statement:

Select ratingCancelGuessingPassing knowledgeKnowledgeableExpert

Your rating: 3 Average: 3 (2 votes)

Taggings:

Prevent ptrace anti-debugging

The first step to find out what the executables does to prevent debugging is to use the ltrace command on it, which will list the dynamic library calls which are called by the executed process and the signals which are received by that process.

If "ptrace" is called, then it means that the program likely uses it to check if any other process (such as a debugger) is attached to it and will terminate if it detects one. There's several ways to cirumvent this behavior, one of them being to overwrite the ptrace call with 0x90 which is the NOP instruction in assembly.

To do that, first use the command readelf on the executable to find out its entry point address. Open the program in gdb and set a breakpoint at the entry point address, then run it and use gdb's single step functionality to step through the program's assembly code until you find the ptrace call.

Note the address of the ptrace call and the next instruction. The difference between the two is the amount of bytes we need to replace with 0x90. To check which bytes exactly need to be replaced examine the ptrace access with gdb's x command, for example x/10xb would let you look at the next 10 bytes in hexadecimal format.

Note down the bytes that need to be replaced, then open the executable with a hex editor and find them. Replace the bytes with 0x90. It should now be possible to reverse engineer the program with gdb.

Installing Linux on Android Table

First of all, the Android device must have root access, a file manager application is needed and also busybox must be installed.

Download your favorite Linux distribution to the tablet internal storage.

Install the applications "Complete Linux Installer", "Terminal Emulator" and "androidVNC" from google play.

After the installation, open "Complete Linux installer" and click on Launch. You have to select the operative system and then click on Boot. Follow the instructions and you will have a Linux running on you tablet.

Taggings:

no-ip free dns

First of all you need a simple torrent client running in a Linux machine.
For the propose of this tutorial we are gonna use Transmission.

To install Transmission:
apt-get install transmission-daemon

after installation, Transmission is running on port 9091. To access to Interface, type on the browser your IP address and Transmission port: 192.168.*.*:9091

You might need to configure user and password. Configuration parameters are in file: /etc/transmission-daemon/settings.json.
Please stop the application before changing any config values: /etc/init.d/transmission-daemon stop and start it again after you are done: /etc/init.d/transmission-daemon start

To achieve worldwide access for your machine we are gonna use a free service called no-ip. Free account can be created here: https://www.noip.com/sign-up

To install and configure noip in your computer, download the tar file to the directory, from no-ip.com with: wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

Unzip the files and once in the unziped folder, make the program with make and then make install
After complete installation, login to no-ip.com to confirm the client carried out it's first update.

Last and most important step is to configure the port-forwarding in your router. The basic idea is that you type something like this in the browser username.no-ip.biz:9091 and you can access to your torrent application from anywhere.
As every router is different, have a look here if you need support in this configuration: http://portforward.com/english/routers/port_forwarding/routerindex.htm

Taggings:

Pages

Subscribe to linux