Trying to put a GUI on Arch-Linux, but there are some road blocks that prevent obvious solutions

here are my issues in this image

issues, i do not know what to do, the arch wiki is useless

I can't connect to the internet via wifi-menu
and my pacman commands are broken.
It also says I do not have permission to remove whatever it suggests that I remove even when logged in as root.

Remove the lock ....
rm /var/lib/pacman/db.lck
The lock is put there when you are trying to install a program, it makes sure you can't have multiple instances of pacman running at the same time... it gets automatically put there but for some reason it wasn't removed...

what will happen after I do that

how do i fix my dialog problem also


Ok so rm that db.lck file and when you go to install xorg the package is xorg-server.

Really, the wiki is the best thing ever on the planet.

EDIT: Screw all of that, try this out.'_guide

it will remove the file that's stopping pacman from continueing.... You can see the steps pacman went through...
First it tries to lock the database so multiple instances of pacman don't run n fuck shit up...
Since it can't lock the database it checks for reasons and the reason it found is 'File exists'
It even tells you you can remove it if package manager(pacman) isn't alreado running... which it's not... so you can remove it

i cant connect to the internet yall

Get a wire.

Are you using ethernet or wifi... Actually you can just get the dialog tarball from this link and install it manually
(sub i386 if using 32 bit)

Then put it on a usb or external drive and mount that drive to mnt, then you can access the tarball and install dialog...

That sucks. I ran into this as well. there is obviously a more advanced user out there that can give you a better answer, but how I got around it was reinstalling arch and installing "dioalog" before rebooting. "Dialog" is a program that "wifi-menu" uses to display what it displays. it was present on the installation medium, but you have to install it onto your computer, before you restart at the end of the instalation. (arch is filled with little gems like that.)

there is an alternative however. if you have access to a wired connection, you may be able to use "networkctl" directly, to establish an internet connectioin.

  • Pacman doesn't work because you have no internet connection.
1 Like

You need to follow the guide on setting up your wireless device correctly. This may require you to install a package manually, i.e. download the gz file and follow the typical install guide for it (sometimes you need to extract the packages and do that makepkg thing which I'm not very good at :) )

But yeah, FOCUS on getting your network connection working first (in terminal), ignore everything else for now.

1 Like

The following should get you online via wifi. I'm assuming you're still logged in as root; if not, prepend all commands with sudo.

First, get the name of your wireless interface with ip link. The interface name will start with "wl", e.g. "wlp2s0" is the name returned from the command here:

[[email protected] ~]# ip link
    . . .
    3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode DEFAULT group...
    . . .

Next, you're going to copy an example "wireless-wpa" file into a location where netctl can read it.

[[email protected] ~]# cp /etc/netctl/examples/wireless-wpa /etc/netctl/

You can confirm netctl can read the file using netctl list, which should return wireless-wpa as a result:

[[email protected] ~]# netctl list

Now use netctl to edit the that example configuration file (should open up in nano). You'll need to change the Interface, ESSID, and Key values:

[[email protected] ~]# netctl edit wireless-wpa
---- opened in NANO ----
  Description='A simple WPA encrypted wireless connection'

  Interface=wlan0  <= Change this to the interface name you got from ip link, e.g. wlp2s0

  ESSID='MyNetwork' <= Change this to the SSID of your wireless network, e.g.: 'IPFreely'

  # Prepend hexadecimal keys with \"
  # If your key starts with ", write it as '""<key>"'
  # See also: the section on special quoting rules in netctl.profile(5)

  Key='WirelessKey' <= Change this to your WiFi password, e.g.: 'ThisIsAPoorPassword'

  # Uncomment this if your ssid is hidden
  # Set a priority for automatic profile selection

Once you've changed those three values, hit CTRL+X, y, then enter to save and close that file. Next, run netctl start wireless-wpa and see if you get a connection:

[[email protected] ~]# netctl start wireless-wpa

I want to go through wifi

Did you try the instructions above? If so and it didn't work, did netctl start wireless-wpa return any errors?

the cp command returned an error because im not sure what to put in "examples" and wireless wpa

how exactly do i do what you said to do after i download that file to a flash drive. I am terribly sorry for my noobyness

First download Dialog and Ncurses(dialog's dependency) from these links...


and put them on a flash drive and then mount that flash drive to /mnt on the computer you want to install it..

lsblk (find the label of the flash drive, /dev/sdXY)

mount /dev/sdXY /mnt

cd /mnt

****here we install ncurses then dialog****

pacman -U ncursesFullFileNameHERE.tar.xz

pacman -U dialogFullFileNameHERE.tar.xz

You've only just started using arch so no worries... It's hard to do things on your own instead of have them done for you like on windows so you're going to have a long road adjusting to this but it's awesome... I'm only 6 months in and I'm learning every day.. So that's what you have to do also to have control over your machine... let me know if you need anything else.. goodluck...

Just for the sake of clarification, the cp command was explicit, meaning you would enter it in exactly as shown:

cp /etc/netctl/examples/wireless-wpa /etc/netctl/

I'll edit that post a bit so it makes more sense, just in case you want to try again. Otherwise, @encfs' instructions will get you the files you need to run wifi-menu.

Ok these instructions make sense, however how do i find the name of the flash drive? Will it be the same that appears in windows? Can you give me an example

@encfs' instructions show how to mount the device. Plug in the USB drive then run lsblk --fs Youll get output looking like this

[[email protected] a]# lsblk --fs
NAME   FSTYPE LABEL           UUID                                 MOUNTPOINT
├─sda1 vfat                   83CB-C39F                            /boot
├─sda2 swap   swap            1b09cd6f-6259-46ed-a6e7-3c5f38e26372 [SWAP]
└─sda3 btrfs  Arch            401facd4-0c1c-40cd-8685-47f5e405bb7d /
sdb    btrfs                  9d663fe0-664b-41ae-8596-f35a83ef70a2 
└─sdb1 ntfs   W-DATA          0F1116DF0F1116DF                     
└─sdc1 btrfs                  77401d03-cb44-4efd-a9b9-1cbe328977d7 
├─sdd1 ntfs   System Reserved 96B81D0FB81CF00B                     
├─sdd2 ntfs                   E4EE1FA6EE1F7052                     
└─sdd3 ntfs                   4C36D3DC36D3C4DC                     
└─sde1 btrfs                  77401d03-cb44-4efd-a9b9-1cbe328977d7 /data
├─sdf1 vfat                   F05B-67AE                            
├─sdf2 ext4                   79d8e582-f905-4090-8e54-58b8b82fa92c 
└─sdf3 swap                   3188045e-9274-4a21-a2c8-93cd72ff8225

sd* is the drive, in my case I have 6 entries, the first 5 are my SSDs and HDDs the last one 'sdf' is my USB stick hat i just plugged in, yours will likely only have one partition and probably a different last letter. The easiest way to tell is by the size of the drive.

(just so you know, GNU/Linux has automounting, labeling, etc of drives and USBs but in a base install its not usually installed by default., you can see the output above has a 'label' column, that will show the name of a device if it has one. My USB doesnt because i was using it as an install disk.)

If its not mounted it wont say anything under mountpoint. Check the file-system type, it should be vfat.

Next we mount the drive, to do that we have to specify the specific partition (they are the numbered ones under the main sd* entries. So you can run mount /dev/sdf1 /mnt remember to replace sdf1 with your correct drive letter. Any device attached to your computer has an any under /dev (just fyi)